|
ARD2
1.00 for Rev B. Hardware
Airbag Reference Demonstrator using MPC5604P
|
00001 /***************************************************************** 00002 * PROJECT : MPC560xB, MPC560xP & MPC560xS 00003 * SPC560xB, SPC560xP & SPC560xS 00004 * FILE : jdp.h 00005 * 00006 * DESCRIPTION : This is the header file describing the register 00007 * set for the named projects. 00008 * 00009 * COPYRIGHT :(c) 2008, Freescale & STMicroelectronics 00010 * 00011 * VERSION : 01.04 00012 * DATE : 05.11.2008 00013 * MODIFIED : 18.03.2009 00014 * AUTHOR : b04629 00015 * HISTORY : Modified to support ADC on Pictus cut 2 - do not distribute! (ttz778) 00016 * HISTORY : Modified to support CRC on Pictus cut 2 - do not distribute! (r60321) 00017 * HISTORY : Modified to support DSPI0 CS7&8 and new FlexPWM naming on Pictus cut 2 (r60321) 00018 * HISTORY : Modified to update MIDR1&2 registers and LINCR1-SFTM and LINESR-BDEF bit on Pictus (r60321) 00019 * HISTORY : Modified to update RGM, CFLASH & DFLASH registers and FlexCAN & CTU Registers on Pictus (r60321) 00020 */ 00021 /* **********************************************************************************/ 00022 /* * THIS HEADER FILE IS ONLY INTENDED AS AN EXAMPLE CODE FOR THE */ 00023 /* * JDP DEVICES AND HAS ONLY BEEN GIVEN A MIMIMUM LEVEL OF TEST. */ 00024 /* * IT IS PROVIDED 'AS SEEN' WITH NO GUARANTEES AND NO PROMISE */ 00025 /* * OF SUPPORT. USE AT YOUR OWN RISK !! */ 00026 /* **********************************************************************************/ 00027 /***************************************************************** 00028 * Example instantiation and use: 00029 * 00030 * <MODULE>.<REGISTER>.B.<BIT> = 1; 00031 * <MODULE>.<REGISTER>.R = 0x10000000; 00032 * 00033 ******************************************************************/ 00034 00035 #ifndef _JDP_H_ 00036 #define _JDP_H_ 00037 00038 #include "typedefs.h" 00039 00040 #ifdef __cplusplus 00041 extern "C" { 00042 #endif 00043 00044 #ifdef __MWERKS__ 00045 #pragma push 00046 #pragma ANSI_strict off 00047 #endif 00048 /****************************************************************************/ 00049 /* MODULE : ADC */ 00050 /****************************************************************************/ 00051 struct ADC_tag { 00052 00053 union { 00054 vuint32_t R; 00055 struct { 00056 vuint32_t OWREN:1; 00057 vuint32_t WLSIDE:1; 00058 vuint32_t MODE:1; 00059 vuint32_t EDGLEV:1; 00060 vuint32_t TRGEN:1; 00061 vuint32_t EDGE:1; 00062 vuint32_t XSTRTEN:1; 00063 vuint32_t NSTART:1; 00064 vuint32_t:1; 00065 vuint32_t JTRGEN:1; 00066 vuint32_t JEDGE:1; 00067 vuint32_t JSTART:1; 00068 vuint32_t:2; 00069 vuint32_t CTUEN:1; 00070 vuint32_t:8; 00071 vuint32_t ADCLKSEL:1; 00072 vuint32_t ABORTCHAIN:1; 00073 vuint32_t ABORT:1; 00074 vuint32_t ACK0:1; 00075 vuint32_t OFFREFRESH:1; 00076 vuint32_t OFFCANC:1; 00077 vuint32_t:2; 00078 vuint32_t PWDN:1; 00079 } B; 00080 } MCR; /* MAIN CONFIGURATION REGISTER */ 00081 00082 union { 00083 vuint32_t R; 00084 struct { 00085 vuint32_t:7; 00086 vuint32_t NSTART:1; 00087 vuint32_t JABORT:1; 00088 vuint32_t:2; 00089 vuint32_t JSTART:1; 00090 vuint32_t:3; 00091 vuint32_t CTUSTART:1; 00092 vuint32_t CHADDR:7; 00093 vuint32_t:3; 00094 vuint32_t ACK0:1; 00095 vuint32_t OFFREFRESH:1; 00096 vuint32_t OFFCANC:1; 00097 vuint32_t ADCSTATUS:3; 00098 } B; 00099 } MSR; /* MAIN STATUS REGISTER */ 00100 00101 int32_t ADC_reserved1[2]; /* (0x008 - 0x00F)/4 = 0x02 */ 00102 00103 union { 00104 vuint32_t R; 00105 struct { 00106 vuint32_t:25; 00107 vuint32_t OFFCANCOVR:1; 00108 vuint32_t EOFFSET:1; 00109 vuint32_t EOCTU:1; 00110 vuint32_t JEOC:1; 00111 vuint32_t JECH:1; 00112 vuint32_t EOC:1; 00113 vuint32_t ECH:1; 00114 } B; 00115 } ISR; /* INTERRUPT STATUS REGISTER */ 00116 00117 union { 00118 vuint32_t R; 00119 struct { 00120 vuint32_t EOC31:1; 00121 vuint32_t EOC30:1; 00122 vuint32_t EOC29:1; 00123 vuint32_t EOC28:1; 00124 vuint32_t EOC27:1; 00125 vuint32_t EOC26:1; 00126 vuint32_t EOC25:1; 00127 vuint32_t EOC24:1; 00128 vuint32_t EOC23:1; 00129 vuint32_t EOC22:1; 00130 vuint32_t EOC21:1; 00131 vuint32_t EOC20:1; 00132 vuint32_t EOC19:1; 00133 vuint32_t EOC18:1; 00134 vuint32_t EOC17:1; 00135 vuint32_t EOC16:1; 00136 vuint32_t EOC15:1; 00137 vuint32_t EOC14:1; 00138 vuint32_t EOC13:1; 00139 vuint32_t EOC12:1; 00140 vuint32_t EOC11:1; 00141 vuint32_t EOC10:1; 00142 vuint32_t EOC9:1; 00143 vuint32_t EOC8:1; 00144 vuint32_t EOC7:1; 00145 vuint32_t EOC6:1; 00146 vuint32_t EOC5:1; 00147 vuint32_t EOC4:1; 00148 vuint32_t EOC3:1; 00149 vuint32_t EOC2:1; 00150 vuint32_t EOC1:1; 00151 vuint32_t EOC0:1; 00152 } B; 00153 } CEOCFR[3]; /* Channel Pending Register 0 */ 00154 00155 union { 00156 vuint32_t R; 00157 struct { 00158 vuint32_t:25; //One bit added 00159 vuint32_t MSKOFFCANCOVR:1; //Moved up 00160 vuint32_t MSKEOFFSET:1; //Moved up 00161 vuint32_t MSKEOCTU:1; //New for cut 2 00162 vuint32_t MSKJEOC:1; 00163 vuint32_t MSKJECH:1; 00164 vuint32_t MSKEOC:1; 00165 vuint32_t MSKECH:1; 00166 } B; 00167 } IMR; /* INTERRUPT MASK REGISTER */ 00168 00169 union { 00170 vuint32_t R; 00171 struct { 00172 vuint32_t CIM31:1; 00173 vuint32_t CIM30:1; 00174 vuint32_t CIM29:1; 00175 vuint32_t CIM28:1; 00176 vuint32_t CIM27:1; 00177 vuint32_t CIM26:1; 00178 vuint32_t CIM25:1; 00179 vuint32_t CIM24:1; 00180 vuint32_t CIM23:1; 00181 vuint32_t CIM22:1; 00182 vuint32_t CIM21:1; 00183 vuint32_t CIM20:1; 00184 vuint32_t CIM19:1; 00185 vuint32_t CIM18:1; 00186 vuint32_t CIM17:1; 00187 vuint32_t CIM16:1; 00188 vuint32_t CIM15:1; 00189 vuint32_t CIM14:1; 00190 vuint32_t CIM13:1; 00191 vuint32_t CIM12:1; 00192 vuint32_t CIM11:1; 00193 vuint32_t CIM10:1; 00194 vuint32_t CIM9:1; 00195 vuint32_t CIM8:1; 00196 vuint32_t CIM7:1; 00197 vuint32_t CIM6:1; 00198 vuint32_t CIM5:1; 00199 vuint32_t CIM4:1; 00200 vuint32_t CIM3:1; 00201 vuint32_t CIM2:1; 00202 vuint32_t CIM1:1; 00203 vuint32_t CIM0:1; 00204 } B; 00205 } CIMR[3]; /* Channel Interrupt Mask Register 0 */ 00206 00207 union { 00208 vuint32_t R; 00209 struct { 00210 vuint32_t:24; 00211 vuint32_t WDG3H:1; 00212 vuint32_t WDG2H:1; 00213 vuint32_t WDG1H:1; 00214 vuint32_t WDG0H:1; 00215 vuint32_t WDG3L:1; 00216 vuint32_t WDG2L:1; 00217 vuint32_t WDG1L:1; 00218 vuint32_t WDG0L:1; 00219 } B; 00220 } WTISR; /* WATCHDOG INTERRUPT THRESHOLD REGISTER was WDGTHR */ 00221 00222 union { 00223 vuint32_t R; 00224 struct { 00225 vuint32_t:24; 00226 vuint32_t MSKWDG3H:1; 00227 vuint32_t MSKWDG2H:1; 00228 vuint32_t MSKWDG1H:1; 00229 vuint32_t MSKWDG0H:1; 00230 vuint32_t MSKWDG3L:1; 00231 vuint32_t MSKWDG2L:1; 00232 vuint32_t MSKWDG1L:1; 00233 vuint32_t MSKWDG0L:1; 00234 } B; 00235 } WTIMR; /* WATCHDOG INTERRUPT MASK REGISTER was IMWDGTHR */ 00236 00237 int32_t ADC_reserved2[2]; /* (0x038 - 0x03F)/4 = 0x02 */ 00238 00239 union { 00240 vuint32_t R; 00241 struct { 00242 vuint32_t:30; //was 16 00243 vuint32_t DCLR:1; //moved 00244 vuint32_t DMAEN:1; //moved 00245 } B; 00246 } DMAE; /* DMAE REGISTER */ 00247 00248 union { 00249 vuint32_t R; 00250 struct { 00251 vuint32_t DMA31:1; //was unused [16] 00252 vuint32_t DMA30:1; 00253 vuint32_t DMA29:1; 00254 vuint32_t DMA28:1; 00255 vuint32_t DMA27:1; 00256 vuint32_t DMA26:1; 00257 vuint32_t DMA25:1; 00258 vuint32_t DMA24:1; 00259 vuint32_t DMA23:1; 00260 vuint32_t DMA22:1; 00261 vuint32_t DMA21:1; 00262 vuint32_t DMA20:1; 00263 vuint32_t DMA19:1; 00264 vuint32_t DMA18:1; 00265 vuint32_t DMA17:1; 00266 vuint32_t DMA16:1; 00267 vuint32_t DMA15:1; 00268 vuint32_t DMA14:1; 00269 vuint32_t DMA13:1; 00270 vuint32_t DMA12:1; 00271 vuint32_t DMA11:1; 00272 vuint32_t DMA10:1; 00273 vuint32_t DMA9:1; 00274 vuint32_t DMA8:1; 00275 vuint32_t DMA7:1; 00276 vuint32_t DMA6:1; 00277 vuint32_t DMA5:1; 00278 vuint32_t DMA4:1; 00279 vuint32_t DMA3:1; 00280 vuint32_t DMA2:1; 00281 vuint32_t DMA1:1; 00282 vuint32_t DMA0:1; 00283 } B; 00284 } DMAR[3]; /* DMA REGISTER was [6] */ 00285 00286 union { 00287 vuint32_t R; 00288 struct { 00289 vuint32_t:16; 00290 vuint32_t THREN:1; 00291 vuint32_t THRINV:1; 00292 vuint32_t THROP:1; 00293 vuint32_t:6; 00294 vuint32_t THRCH:7; 00295 } B; 00296 } TRC[4]; /* ADC THRESHOLD REGISTER REGISTER */ 00297 00298 union { 00299 vuint32_t R; 00300 struct { //were in TRA & TRB 00301 vuint32_t:4; 00302 vuint32_t THRH:12; 00303 vuint32_t:4; 00304 vuint32_t THRL:12; 00305 } B; 00306 } THRHLR[4]; /* THRESHOLD REGISTER */ 00307 00308 union { 00309 vuint32_t R; 00310 struct { //were in TRAALT & TRBALT 00311 vuint32_t:4; 00312 vuint32_t THRH:12; 00313 vuint32_t:4; 00314 vuint32_t THRL:12; 00315 } B; 00316 } THRALT[4]; /* ADC THRESHOLD REGISTER REGISTER */ 00317 00318 union { 00319 vuint32_t R; 00320 struct { 00321 vuint32_t:25; //was 26 00322 vuint32_t PREVAL2:2; 00323 vuint32_t PREVAL1:2; 00324 vuint32_t PREVAL0:2; 00325 vuint32_t PREONCE:1; 00326 } B; 00327 } PSCR; /* PRESAMPLING CONTROL REGISTER was PREREG */ 00328 00329 union { 00330 vuint32_t R; 00331 struct { 00332 vuint32_t PRES31:1; //was reserved 16 00333 vuint32_t PRES30:1; 00334 vuint32_t PRES29:1; 00335 vuint32_t PRES28:1; 00336 vuint32_t PRES27:1; 00337 vuint32_t PRES26:1; 00338 vuint32_t PRES25:1; 00339 vuint32_t PRES24:1; 00340 vuint32_t PRES23:1; 00341 vuint32_t PRES22:1; 00342 vuint32_t PRES21:1; 00343 vuint32_t PRES20:1; 00344 vuint32_t PRES19:1; 00345 vuint32_t PRES18:1; 00346 vuint32_t PRES17:1; 00347 vuint32_t PRES16:1; 00348 vuint32_t PRES15:1; 00349 vuint32_t PRES14:1; 00350 vuint32_t PRES13:1; 00351 vuint32_t PRES12:1; 00352 vuint32_t PRES11:1; 00353 vuint32_t PRES10:1; 00354 vuint32_t PRES9:1; 00355 vuint32_t PRES8:1; 00356 vuint32_t PRES7:1; 00357 vuint32_t PRES6:1; 00358 vuint32_t PRES5:1; 00359 vuint32_t PRES4:1; 00360 vuint32_t PRES3:1; 00361 vuint32_t PRES2:1; 00362 vuint32_t PRES1:1; 00363 vuint32_t PRES0:1; 00364 } B; 00365 } PSR[3]; /* PRESAMPLING REGISTER was PRER[6]*/ 00366 00367 int32_t ADC_reserved3[1]; /* (0x090 - 0x093)/4 = 0x01 */ 00368 00369 union { 00370 vuint32_t R; 00371 struct { 00372 vuint32_t:16; 00373 vuint32_t INPLATCH:1; 00374 vuint32_t:1; 00375 vuint32_t OFFSHIFT:2; 00376 vuint32_t:1; 00377 vuint32_t INPCMP:2; 00378 vuint32_t:1; 00379 vuint32_t INPSAMP:8; 00380 } B; 00381 } CTR[3]; /* CONVERSION TIMING REGISTER was CT[3] */ 00382 00383 int32_t ADC_reserved4[1]; /* (0x0A0 - 0x0A3)/4 = 0x01 */ 00384 00385 union { 00386 vuint32_t R; 00387 struct { 00388 vuint32_t CH31:1; //was reserved 16 00389 vuint32_t CH30:1; 00390 vuint32_t CH29:1; 00391 vuint32_t CH28:1; 00392 vuint32_t CH27:1; 00393 vuint32_t CH26:1; 00394 vuint32_t CH25:1; 00395 vuint32_t CH24:1; 00396 vuint32_t CH23:1; 00397 vuint32_t CH22:1; 00398 vuint32_t CH21:1; 00399 vuint32_t CH20:1; 00400 vuint32_t CH19:1; 00401 vuint32_t CH18:1; 00402 vuint32_t CH17:1; 00403 vuint32_t CH16:1; 00404 vuint32_t CH15:1; 00405 vuint32_t CH14:1; 00406 vuint32_t CH13:1; 00407 vuint32_t CH12:1; 00408 vuint32_t CH11:1; 00409 vuint32_t CH10:1; 00410 vuint32_t CH9:1; 00411 vuint32_t CH8:1; 00412 vuint32_t CH7:1; 00413 vuint32_t CH6:1; 00414 vuint32_t CH5:1; 00415 vuint32_t CH4:1; 00416 vuint32_t CH3:1; 00417 vuint32_t CH2:1; 00418 vuint32_t CH1:1; 00419 vuint32_t CH0:1; 00420 } B; 00421 } NCMR[3]; /* NORMAL CONVERSION MASK REGISTER was [6] */ 00422 00423 int32_t ADC_reserved5[1]; /* (0x0B0 - 0x0B3)/4 = 0x01 */ 00424 00425 union { 00426 vuint32_t R; 00427 struct { 00428 vuint32_t CH31:1; //was reserved 16 00429 vuint32_t CH30:1; 00430 vuint32_t CH29:1; 00431 vuint32_t CH28:1; 00432 vuint32_t CH27:1; 00433 vuint32_t CH26:1; 00434 vuint32_t CH25:1; 00435 vuint32_t CH24:1; 00436 vuint32_t CH23:1; 00437 vuint32_t CH22:1; 00438 vuint32_t CH21:1; 00439 vuint32_t CH20:1; 00440 vuint32_t CH19:1; 00441 vuint32_t CH18:1; 00442 vuint32_t CH17:1; 00443 vuint32_t CH16:1; 00444 vuint32_t CH15:1; 00445 vuint32_t CH14:1; 00446 vuint32_t CH13:1; 00447 vuint32_t CH12:1; 00448 vuint32_t CH11:1; 00449 vuint32_t CH10:1; 00450 vuint32_t CH9:1; 00451 vuint32_t CH8:1; 00452 vuint32_t CH7:1; 00453 vuint32_t CH6:1; 00454 vuint32_t CH5:1; 00455 vuint32_t CH4:1; 00456 vuint32_t CH3:1; 00457 vuint32_t CH2:1; 00458 vuint32_t CH1:1; 00459 vuint32_t CH0:1; 00460 } B; 00461 } JCMR[3]; /* Injected CONVERSION MASK REGISTER was ICMR[6] */ 00462 00463 union { 00464 vuint32_t R; 00465 struct { 00466 vuint32_t:15; 00467 vuint32_t OFFSETLOAD:1; //new 00468 vuint32_t:8; 00469 vuint32_t OFFSETWORD:8; 00470 } B; 00471 } OFFWR; /* OFFSET WORD REGISTER was OFFREG*/ 00472 00473 union { 00474 vuint32_t R; 00475 struct { 00476 vuint32_t:24; 00477 vuint32_t DSD:8; 00478 } B; 00479 } DSDR; /* DECODE SIGNALS DELAY REGISTER was DSD */ 00480 00481 union { 00482 vuint32_t R; 00483 struct { 00484 vuint32_t:24; 00485 vuint32_t PDED:8; //was PDD 00486 } B; 00487 } PDEDR; /* POWER DOWN DELAY REGISTER was PDD */ 00488 00489 int32_t ADC_reserved6[9]; /* (0x0CC - 0x0EF)/4 = 0x09 */ 00490 00491 union { 00492 vuint32_t R; 00493 struct { 00494 vuint32_t TEST_CTL:32; 00495 } B; 00496 } TCTLR; /* Test control REGISTER */ 00497 00498 int32_t ADC_reserved7[3]; /* (0x0F4 - 0x0FF)/4 = 0x03 */ 00499 00500 union { 00501 vuint32_t R; 00502 struct { 00503 vuint32_t:12; 00504 vuint32_t VALID:1; 00505 vuint32_t OVERW:1; 00506 vuint32_t RESULT:2; 00507 vuint32_t:4; 00508 vuint32_t CDATA:12; 00509 } B; 00510 } CDR[96]; /* Channel 0-95 Data REGISTER */ 00511 00512 }; /* end of ADC_tag */ 00513 /****************************************************************************/ 00514 /* MODULE : CANSP */ 00515 /****************************************************************************/ 00516 struct CANSP_tag { 00517 union { 00518 vuint16_t R; 00519 struct { 00520 vuint16_t RX_COMPLETE:1; 00521 vuint16_t BUSY:1; 00522 vuint16_t ACTIVE_CK:1; 00523 vuint16_t:3; 00524 vuint16_t MODE:1; 00525 vuint16_t CAN_RX_SEL:3; 00526 vuint16_t BRP:5; 00527 vuint16_t CAN_SMPLR_EN:1; 00528 } B; 00529 } CR; /* CANSP Control Register */ 00530 00531 int16_t CANSP_reserved; 00532 00533 union { 00534 vuint32_t R; 00535 } SR[12]; /* CANSP Sample Register 0 to 11 */ 00536 00537 }; /* end of CANSP_tag */ 00538 /****************************************************************************/ 00539 /* MODULE : MCM */ 00540 /****************************************************************************/ 00541 struct MCM_tag { 00542 00543 union { 00544 vuint16_t R; 00545 } PCT; /* MCM Processor Core Type Register */ 00546 00547 union { 00548 vuint16_t R; 00549 } REV; /* MCM Revision Register */ 00550 00551 int32_t MCM_reserved; 00552 00553 union { 00554 vuint32_t R; 00555 } MC; /* MCM Configuration Register */ 00556 00557 int8_t MCM_reserved1[3]; 00558 00559 union { 00560 vuint8_t R; 00561 struct { 00562 vuint8_t POR:1; 00563 vuint8_t DIR:1; 00564 vuint8_t:6; 00565 } B; 00566 } MRSR; /* MCM Miscellaneous Reset Status Register */ 00567 00568 int8_t MCM_reserved2[3]; 00569 00570 union { 00571 vuint8_t R; 00572 struct { 00573 vuint8_t ENBWCR:1; 00574 vuint8_t:3; 00575 vuint8_t PRILVL:4; 00576 } B; 00577 } MWCR; /* MCM Miscellaneous Wakeup Control Register */ 00578 00579 int32_t MCM_reserved3[2]; 00580 int8_t MCM_reserved4[3]; 00581 00582 union { 00583 vuint8_t R; 00584 struct { 00585 vuint8_t FB0AI:1; 00586 vuint8_t FB0SI:1; 00587 vuint8_t FB1AI:1; 00588 vuint8_t FB1SI:1; 00589 vuint8_t:4; 00590 } B; 00591 } MIR; /* MCM Miscellaneous Interrupt Register */ 00592 00593 int32_t MCM_reserved5; 00594 00595 union { 00596 vuint32_t R; 00597 } MUDCR; /* MCM Miscellaneous User-Defined Control Register */ 00598 00599 int32_t MCM_reserved6[6]; /* (0x040- 0x028)/4 = 0x06 */ 00600 int8_t MCM_reserved7[3]; 00601 00602 union { 00603 vuint8_t R; 00604 struct { 00605 vuint8_t:2; 00606 vuint8_t ER1BR:1; 00607 vuint8_t EF1BR:1; 00608 vuint8_t:2; 00609 vuint8_t ERNCR:1; 00610 vuint8_t EFNCR:1; 00611 } B; 00612 } ECR; /* MCM ECC Configuration Register */ 00613 00614 int8_t MCM_reserved8[3]; 00615 00616 union { 00617 vuint8_t R; 00618 struct { 00619 vuint8_t:2; 00620 vuint8_t R1BC:1; 00621 vuint8_t F1BC:1; 00622 vuint8_t:2; 00623 vuint8_t RNCE:1; 00624 vuint8_t FNCE:1; 00625 } B; 00626 } ESR; /* MCM ECC Status Register */ 00627 00628 int16_t MCM_reserved9; 00629 00630 union { 00631 vuint16_t R; 00632 struct { 00633 vuint16_t:2; 00634 vuint16_t FRC1BI:1; 00635 vuint16_t FR11BI:1; 00636 vuint16_t:2; 00637 vuint16_t FRCNCI:1; 00638 vuint16_t FR1NCI:1; 00639 vuint16_t:1; 00640 vuint16_t ERRBIT:7; 00641 } B; 00642 } EEGR; /* MCM ECC Error Generation Register */ 00643 00644 int32_t MCM_reserved10; 00645 00646 union { 00647 vuint32_t R; 00648 } FEAR; /* MCM Flash ECC Address Register */ 00649 00650 int16_t MCM_reserved11; 00651 00652 union { 00653 vuint8_t R; 00654 struct { 00655 vuint8_t:4; 00656 vuint8_t FEMR:4; 00657 } B; 00658 } FEMR; /* MCM Flash ECC Master Number Register */ 00659 00660 union { 00661 vuint8_t R; 00662 struct { 00663 vuint8_t WRITE:1; 00664 vuint8_t SIZE:3; 00665 vuint8_t PROTECTION:4; 00666 } B; 00667 } FEAT; /* MCM Flash ECC Attributes Register */ 00668 00669 int32_t MCM_reserved12; 00670 00671 union { 00672 vuint32_t R; 00673 } FEDR; /* MCM Flash ECC Data Register */ 00674 00675 union { 00676 vuint32_t R; 00677 } REAR; /* MCM RAM ECC Address Register */ 00678 00679 int8_t MCM_reserved13; 00680 00681 union { 00682 vuint8_t R; 00683 } RESR; /* MCM RAM ECC Address Register */ 00684 00685 union { 00686 vuint8_t R; 00687 struct { 00688 vuint8_t:4; 00689 vuint8_t REMR:4; 00690 } B; 00691 } REMR; /* MCM RAM ECC Master Number Register */ 00692 00693 union { 00694 vuint8_t R; 00695 struct { 00696 vuint8_t WRITE:1; 00697 vuint8_t SIZE:3; 00698 vuint8_t PROTECTION:4; 00699 } B; 00700 } REAT; /* MCM RAM ECC Attributes Register */ 00701 00702 int32_t MCM_reserved14; 00703 00704 union { 00705 vuint32_t R; 00706 } REDR; /* MCM RAM ECC Data Register */ 00707 00708 }; /* end of MCM_tag */ 00709 /****************************************************************************/ 00710 /* MODULE : RTC */ 00711 /****************************************************************************/ 00712 struct RTC_tag { 00713 union { 00714 vuint32_t R; 00715 struct { 00716 vuint32_t SUPV:1; 00717 vuint32_t:31; 00718 } B; 00719 } RTCSUPV; /* RTC Supervisor Control Register */ 00720 00721 union { 00722 vuint32_t R; 00723 struct { 00724 vuint32_t CNTEN:1; 00725 vuint32_t RTCIE:1; 00726 vuint32_t FRZEN:1; 00727 vuint32_t ROVREN:1; 00728 vuint32_t RTCVAL:12; 00729 vuint32_t APIEN:1; 00730 vuint32_t APIE:1; 00731 vuint32_t CLKSEL:2; 00732 vuint32_t DIV512EN:1; 00733 vuint32_t DIV32EN:1; 00734 vuint32_t APIVAL:10; 00735 } B; 00736 } RTCC; /* RTC Control Register */ 00737 00738 union { 00739 vuint32_t R; 00740 struct { 00741 vuint32_t:2; 00742 vuint32_t RTCF:1; 00743 vuint32_t:15; 00744 vuint32_t APIF:1; 00745 vuint32_t:2; 00746 vuint32_t ROVRF:1; 00747 vuint32_t:10; 00748 } B; 00749 } RTCS; /* RTC Status Register */ 00750 00751 union { 00752 vuint32_t R; 00753 struct { 00754 vuint32_t RTCCNT:32; 00755 } B; 00756 } RTCCNT; /* RTC Counter Register */ 00757 00758 }; /* end of RTC_tag */ 00759 /****************************************************************************/ 00760 /* MODULE : SIU */ 00761 /****************************************************************************/ 00762 struct SIU_tag { 00763 00764 int32_t SIU_reserved0; 00765 00766 union { /* MCU ID Register 1 */ 00767 vuint32_t R; 00768 struct { 00769 vuint32_t PARTNUM:16; 00770 vuint32_t CSP:1; 00771 vuint32_t PKG:5; 00772 vuint32_t:2; 00773 vuint32_t MAJORMASK:4; 00774 vuint32_t MINORMASK:4; 00775 } B; 00776 } MIDR; 00777 00778 union { /* MCU ID Register 2 */ 00779 vuint32_t R; 00780 struct { 00781 vuint32_t SF:1; 00782 vuint32_t FLASH_SIZE_1:4; 00783 vuint32_t FLASH_SIZE_2:4; 00784 vuint32_t:7; 00785 vuint32_t PARTNUM:8; 00786 vuint32_t:3; 00787 vuint32_t EE:1; 00788 vuint32_t:3; 00789 vuint32_t FR:1; 00790 } B; 00791 } MIDR2; 00792 00793 int32_t SIU_reserved1[2]; 00794 00795 union { /* Interrupt Status Flag Register */ 00796 vuint32_t R; 00797 struct { 00798 vuint32_t EIF31:1; 00799 vuint32_t EIF30:1; 00800 vuint32_t EIF29:1; 00801 vuint32_t EIF28:1; 00802 vuint32_t EIF27:1; 00803 vuint32_t EIF26:1; 00804 vuint32_t EIF25:1; 00805 vuint32_t EIF24:1; 00806 vuint32_t EIF23:1; 00807 vuint32_t EIF22:1; 00808 vuint32_t EIF21:1; 00809 vuint32_t EIF20:1; 00810 vuint32_t EIF19:1; 00811 vuint32_t EIF18:1; 00812 vuint32_t EIF17:1; 00813 vuint32_t EIF16:1; 00814 vuint32_t EIF15:1; 00815 vuint32_t EIF14:1; 00816 vuint32_t EIF13:1; 00817 vuint32_t EIF12:1; 00818 vuint32_t EIF11:1; 00819 vuint32_t EIF10:1; 00820 vuint32_t EIF9:1; 00821 vuint32_t EIF8:1; 00822 vuint32_t EIF7:1; 00823 vuint32_t EIF6:1; 00824 vuint32_t EIF5:1; 00825 vuint32_t EIF4:1; 00826 vuint32_t EIF3:1; 00827 vuint32_t EIF2:1; 00828 vuint32_t EIF1:1; 00829 vuint32_t EIF0:1; 00830 } B; 00831 } ISR; 00832 00833 union { /* Interrupt Request Enable Register */ 00834 vuint32_t R; 00835 struct { 00836 vuint32_t EIRE31:1; 00837 vuint32_t EIRE30:1; 00838 vuint32_t EIRE29:1; 00839 vuint32_t EIRE28:1; 00840 vuint32_t EIRE27:1; 00841 vuint32_t EIRE26:1; 00842 vuint32_t EIRE25:1; 00843 vuint32_t EIRE24:1; 00844 vuint32_t EIRE23:1; 00845 vuint32_t EIRE22:1; 00846 vuint32_t EIRE21:1; 00847 vuint32_t EIRE20:1; 00848 vuint32_t EIRE19:1; 00849 vuint32_t EIRE18:1; 00850 vuint32_t EIRE17:1; 00851 vuint32_t EIRE16:1; 00852 vuint32_t EIRE15:1; 00853 vuint32_t EIRE14:1; 00854 vuint32_t EIRE13:1; 00855 vuint32_t EIRE12:1; 00856 vuint32_t EIRE11:1; 00857 vuint32_t EIRE10:1; 00858 vuint32_t EIRE9:1; 00859 vuint32_t EIRE8:1; 00860 vuint32_t EIRE7:1; 00861 vuint32_t EIRE6:1; 00862 vuint32_t EIRE5:1; 00863 vuint32_t EIRE4:1; 00864 vuint32_t EIRE3:1; 00865 vuint32_t EIRE2:1; 00866 vuint32_t EIRE1:1; 00867 vuint32_t EIRE0:1; 00868 } B; 00869 } IRER; 00870 00871 int32_t SIU_reserved2[3]; 00872 00873 union { /* Interrupt Rising-Edge Event Enable Register */ 00874 vuint32_t R; 00875 struct { 00876 vuint32_t IREE31:1; 00877 vuint32_t IREE30:1; 00878 vuint32_t IREE29:1; 00879 vuint32_t IREE28:1; 00880 vuint32_t IREE27:1; 00881 vuint32_t IREE26:1; 00882 vuint32_t IREE25:1; 00883 vuint32_t IREE24:1; 00884 vuint32_t IREE23:1; 00885 vuint32_t IREE22:1; 00886 vuint32_t IREE21:1; 00887 vuint32_t IREE20:1; 00888 vuint32_t IREE19:1; 00889 vuint32_t IREE18:1; 00890 vuint32_t IREE17:1; 00891 vuint32_t IREE16:1; 00892 vuint32_t IREE15:1; 00893 vuint32_t IREE14:1; 00894 vuint32_t IREE13:1; 00895 vuint32_t IREE12:1; 00896 vuint32_t IREE11:1; 00897 vuint32_t IREE10:1; 00898 vuint32_t IREE9:1; 00899 vuint32_t IREE8:1; 00900 vuint32_t IREE7:1; 00901 vuint32_t IREE6:1; 00902 vuint32_t IREE5:1; 00903 vuint32_t IREE4:1; 00904 vuint32_t IREE3:1; 00905 vuint32_t IREE2:1; 00906 vuint32_t IREE1:1; 00907 vuint32_t IREE0:1; 00908 } B; 00909 } IREER; 00910 00911 union { /* Interrupt Falling-Edge Event Enable Register */ 00912 vuint32_t R; 00913 struct { 00914 vuint32_t IFEE31:1; 00915 vuint32_t IFEE30:1; 00916 vuint32_t IFEE29:1; 00917 vuint32_t IFEE28:1; 00918 vuint32_t IFEE27:1; 00919 vuint32_t IFEE26:1; 00920 vuint32_t IFEE25:1; 00921 vuint32_t IFEE24:1; 00922 vuint32_t IFEE23:1; 00923 vuint32_t IFEE22:1; 00924 vuint32_t IFEE21:1; 00925 vuint32_t IFEE20:1; 00926 vuint32_t IFEE19:1; 00927 vuint32_t IFEE18:1; 00928 vuint32_t IFEE17:1; 00929 vuint32_t IFEE16:1; 00930 vuint32_t IFEE15:1; 00931 vuint32_t IFEE14:1; 00932 vuint32_t IFEE13:1; 00933 vuint32_t IFEE12:1; 00934 vuint32_t IFEE11:1; 00935 vuint32_t IFEE10:1; 00936 vuint32_t IFEE9:1; 00937 vuint32_t IFEE8:1; 00938 vuint32_t IFEE7:1; 00939 vuint32_t IFEE6:1; 00940 vuint32_t IFEE5:1; 00941 vuint32_t IFEE4:1; 00942 vuint32_t IFEE3:1; 00943 vuint32_t IFEE2:1; 00944 vuint32_t IFEE1:1; 00945 vuint32_t IFEE0:1; 00946 } B; 00947 } IFEER; 00948 00949 union { /* Interrupt Filter Enable Register */ 00950 vuint32_t R; 00951 struct { 00952 vuint32_t IFE31:1; 00953 vuint32_t IFE30:1; 00954 vuint32_t IFE29:1; 00955 vuint32_t IFE28:1; 00956 vuint32_t IFE27:1; 00957 vuint32_t IFE26:1; 00958 vuint32_t IFE25:1; 00959 vuint32_t IFE24:1; 00960 vuint32_t IFE23:1; 00961 vuint32_t IFE22:1; 00962 vuint32_t IFE21:1; 00963 vuint32_t IFE20:1; 00964 vuint32_t IFE19:1; 00965 vuint32_t IFE18:1; 00966 vuint32_t IFE17:1; 00967 vuint32_t IFE16:1; 00968 vuint32_t IFE15:1; 00969 vuint32_t IFE14:1; 00970 vuint32_t IFE13:1; 00971 vuint32_t IFE12:1; 00972 vuint32_t IFE11:1; 00973 vuint32_t IFE10:1; 00974 vuint32_t IFE9:1; 00975 vuint32_t IFE8:1; 00976 vuint32_t IFE7:1; 00977 vuint32_t IFE6:1; 00978 vuint32_t IFE5:1; 00979 vuint32_t IFE4:1; 00980 vuint32_t IFE3:1; 00981 vuint32_t IFE2:1; 00982 vuint32_t IFE1:1; 00983 vuint32_t IFE0:1; 00984 } B; 00985 } IFER; 00986 00987 int32_t SIU_reserved3[3]; 00988 00989 union { /* Pad Configuration Registers */ 00990 vuint16_t R; 00991 struct { 00992 vuint16_t:1; 00993 vuint16_t SME:1; 00994 vuint16_t APC:1; 00995 vuint16_t:1; 00996 vuint16_t PA:2; 00997 vuint16_t OBE:1; 00998 vuint16_t IBE:1; 00999 vuint16_t DCS:2; 01000 vuint16_t ODE:1; 01001 vuint16_t HYS:1; 01002 vuint16_t SRC:2; 01003 vuint16_t WPE:1; 01004 vuint16_t WPS:1; 01005 } B; 01006 } PCR[512]; 01007 01008 int32_t SIU_reserved4[48]; /* {0x500-0x440}/0x4 */ 01009 01010 union { /* Pad Selection for Multiplexed Input Register */ 01011 vuint8_t R; 01012 struct { 01013 vuint8_t:4; 01014 vuint8_t PADSEL:4; 01015 } B; 01016 } PSMI[256]; 01017 01018 union { /* GPIO Pin Data Output Registers */ 01019 vuint8_t R; 01020 struct { 01021 vuint8_t:7; 01022 vuint8_t PDO:1; 01023 } B; 01024 } GPDO[512]; 01025 01026 union { /* GPIO Pin Data Input Registers */ 01027 vuint8_t R; 01028 struct { 01029 vuint8_t:7; 01030 vuint8_t PDI:1; 01031 } B; 01032 } GPDI[512]; 01033 01034 int32_t SIU_reserved5[128]; /* {0xC00-0xA00}/0x4 */ 01035 01036 union { /* Parallel GPIO Pin Data Output Register */ 01037 vuint32_t R; 01038 struct { 01039 vuint32_t PPD0:32; 01040 } B; 01041 } PGPDO[16]; 01042 01043 union { /* Parallel GPIO Pin Data Input Register */ 01044 vuint32_t R; 01045 struct { 01046 vuint32_t PPDI:32; 01047 } B; 01048 } PGPDI[16]; 01049 01050 union { /* Masked Parallel GPIO Pin Data Out Register */ 01051 vuint32_t R; 01052 struct { 01053 vuint32_t MASK:16; 01054 vuint32_t MPPDO:16; 01055 } B; 01056 } MPGPDO[32]; 01057 01058 int32_t SIU_reserved6[192]; /* {0x1000-0x0D00}/0x4 */ 01059 01060 union { /* Interrupt Filter Maximum Counter Register */ 01061 vuint32_t R; 01062 struct { 01063 vuint32_t:28; 01064 vuint32_t MAXCNT:4; 01065 } B; 01066 } IFMC[32]; 01067 01068 union { /* Interrupt Filter Clock Prescaler Register */ 01069 vuint32_t R; 01070 struct { 01071 vuint32_t:28; 01072 vuint32_t IFCP:4; 01073 } B; 01074 } IFCPR; 01075 01076 }; /* end of SIU_tag */ 01077 /****************************************************************************/ 01078 /* MODULE : SSCM */ 01079 /****************************************************************************/ 01080 struct SSCM_tag { 01081 union { 01082 vuint16_t R; 01083 struct { 01084 vuint16_t:4; 01085 vuint16_t NXEN:1; 01086 vuint16_t:1; 01087 vuint16_t SEC:1; 01088 vuint16_t:1; 01089 vuint16_t BMODE:3; 01090 vuint16_t DMID:1; 01091 vuint16_t ABD:1; 01092 vuint16_t:3; 01093 } B; 01094 } STATUS; /* Status Register */ 01095 01096 union { 01097 vuint16_t R; 01098 struct { 01099 vuint16_t SRAMSIZE:5; 01100 vuint16_t IFLASHSIZE:5; 01101 vuint16_t IVLD:1; 01102 vuint16_t DFLASHSIZE:4; 01103 vuint16_t DVLD:1; 01104 } B; 01105 } MEMCONFIG; /* System Memory Configuration Register */ 01106 01107 int16_t SSCM_reserved; 01108 01109 union { 01110 vuint16_t R; 01111 struct { 01112 vuint16_t:14; 01113 vuint16_t PAE:1; 01114 vuint16_t RAE:1; 01115 } B; 01116 } ERROR; /* Error Configuration Register */ 01117 01118 union { 01119 vuint16_t R; 01120 struct { 01121 vuint16_t:13; 01122 vuint16_t DEBUG_MODE:3; 01123 } B; 01124 } DEBUGPORT; /* Debug Status Port Register */ 01125 01126 int16_t SSCM_reserved1; 01127 01128 union { 01129 vuint32_t R; 01130 struct { 01131 vuint32_t PWD_HI:32; 01132 } B; 01133 } PWCMPH; /* Password Comparison Register High Word */ 01134 01135 union { 01136 vuint32_t R; 01137 struct { 01138 vuint32_t PWD_LO:32; 01139 } B; 01140 } PWCMPL; /* Password Comparison Register Low Word */ 01141 01142 }; /* end of SSCM_tag */ 01143 /****************************************************************************/ 01144 /* MODULE : STM */ 01145 /****************************************************************************/ 01146 struct STM_tag { 01147 01148 union { 01149 vuint32_t R; 01150 struct { 01151 vuint32_t:16; 01152 vuint32_t CPS:8; 01153 vuint32_t:6; 01154 vuint32_t FRZ:1; 01155 vuint32_t TEN:1; 01156 } B; 01157 } CR0; /* STM Control Register */ 01158 01159 union { 01160 vuint32_t R; 01161 } CNT0; /* STM Count Register */ 01162 01163 int32_t STM_reserved[2]; 01164 01165 union { 01166 vuint32_t R; 01167 struct { 01168 vuint32_t:31; 01169 vuint32_t CEN:1; 01170 } B; 01171 } CCR0; /* STM Channel Control Register 0 */ 01172 01173 union { 01174 vuint32_t R; 01175 struct { 01176 vuint32_t:31; 01177 vuint32_t CIF:1; 01178 } B; 01179 } CIR0; /* STM Channel Interrupt Register 0 */ 01180 01181 union { 01182 vuint32_t R; 01183 } CMP0; /* STM Channel Compare Register 0 */ 01184 01185 int32_t STM_reserved1; 01186 01187 union { 01188 vuint32_t R; 01189 struct { 01190 vuint32_t:31; 01191 vuint32_t CEN:1; 01192 } B; 01193 } CCR1; /* STM Channel Control Register 1 */ 01194 01195 union { 01196 vuint32_t R; 01197 struct { 01198 vuint32_t:31; 01199 vuint32_t CIF:1; 01200 } B; 01201 } CIR1; /* STM Channel Interrupt Register 1 */ 01202 01203 union { 01204 vuint32_t R; 01205 } CMP1; /* STM Channel Compare Register 1 */ 01206 01207 int32_t STM_reserved2; 01208 01209 union { 01210 vuint32_t R; 01211 struct { 01212 vuint32_t:31; 01213 vuint32_t CEN:1; 01214 } B; 01215 } CCR2; /* STM Channel Control Register 2 */ 01216 01217 union { 01218 vuint32_t R; 01219 struct { 01220 vuint32_t:31; 01221 vuint32_t CIF:1; 01222 } B; 01223 } CIR2; /* STM Channel Interrupt Register 2 */ 01224 01225 union { 01226 vuint32_t R; 01227 } CMP2; /* STM Channel Compare Register 2 */ 01228 01229 int32_t STM_reserved3; 01230 01231 union { 01232 vuint32_t R; 01233 struct { 01234 vuint32_t:31; 01235 vuint32_t CEN:1; 01236 } B; 01237 } CCR3; /* STM Channel Control Register 3 */ 01238 01239 union { 01240 vuint32_t R; 01241 struct { 01242 vuint32_t:31; 01243 vuint32_t CIF:1; 01244 } B; 01245 } CIR3; /* STM Channel Interrupt Register 3 */ 01246 01247 union { 01248 vuint32_t R; 01249 } CMP3; /* STM Channel Compare Register 3 */ 01250 01251 }; /* end of STM_tag */ 01252 /****************************************************************************/ 01253 /* MODULE : SWT */ 01254 /****************************************************************************/ 01255 struct SWT_tag { 01256 union { 01257 vuint32_t R; 01258 struct { 01259 vuint32_t MAP0:1; 01260 vuint32_t MAP1:1; 01261 vuint32_t MAP2:1; 01262 vuint32_t MAP3:1; 01263 vuint32_t MAP4:1; 01264 vuint32_t MAP5:1; 01265 vuint32_t MAP6:1; 01266 vuint32_t MAP7:1; 01267 vuint32_t:15; 01268 vuint32_t RIA:1; 01269 vuint32_t WND:1; 01270 vuint32_t ITR:1; 01271 vuint32_t HLK:1; 01272 vuint32_t SLK:1; 01273 vuint32_t CSL:1; 01274 vuint32_t STP:1; 01275 vuint32_t FRZ:1; 01276 vuint32_t WEN:1; 01277 } B; 01278 } CR; /* SWT Control Register */ 01279 01280 union { 01281 vuint32_t R; 01282 struct { 01283 vuint32_t:31; 01284 vuint32_t TIF:1; 01285 } B; 01286 } IR; /* SWT Interrupt Register */ 01287 01288 union { 01289 vuint32_t R; 01290 struct { 01291 vuint32_t WTO:32; 01292 } B; 01293 } TO; /* SWT Time-Out Register */ 01294 01295 union { 01296 vuint32_t R; 01297 struct { 01298 vuint32_t WST:32; 01299 } B; 01300 } WN; /* SWT Window Register */ 01301 01302 union { 01303 vuint32_t R; 01304 struct { 01305 vuint32_t:16; 01306 vuint32_t WSC:16; 01307 } B; 01308 } SR; /* SWT Service Register */ 01309 01310 union { 01311 vuint32_t R; 01312 struct { 01313 vuint32_t CNT:32; 01314 } B; 01315 } CO; /* SWT Counter Output Register */ 01316 01317 }; /* end of SWT_tag */ 01318 /****************************************************************************/ 01319 /* MODULE : WKUP */ 01320 /****************************************************************************/ 01321 struct WKUP_tag { 01322 union { 01323 vuint32_t R; 01324 struct { 01325 vuint32_t NIF0:1; 01326 vuint32_t NOVF0:1; 01327 vuint32_t:6; 01328 vuint32_t NIF1:1; 01329 vuint32_t NOVF1:1; 01330 vuint32_t:6; 01331 vuint32_t NIF2:1; 01332 vuint32_t NOVF2:1; 01333 vuint32_t:6; 01334 vuint32_t NIF3:1; 01335 vuint32_t NOVF3:1; 01336 vuint32_t:6; 01337 } B; 01338 } NSR; /* NMI Status Register */ 01339 01340 int32_t WKUP_reserved; 01341 01342 union { 01343 vuint32_t R; 01344 struct { 01345 vuint32_t NLOCK0:1; 01346 vuint32_t NDSS0:2; 01347 vuint32_t NWRE0:1; 01348 vuint32_t:1; 01349 vuint32_t NREE0:1; 01350 vuint32_t NFEE0:1; 01351 vuint32_t NFE0:1; 01352 vuint32_t NLOCK1:1; 01353 vuint32_t NDSS1:2; 01354 vuint32_t NWRE1:1; 01355 vuint32_t:1; 01356 vuint32_t NREE1:1; 01357 vuint32_t NFEE1:1; 01358 vuint32_t NFE1:1; 01359 vuint32_t NLOCK2:1; 01360 vuint32_t NDSS2:2; 01361 vuint32_t NWRE2:1; 01362 vuint32_t:1; 01363 vuint32_t NREE2:1; 01364 vuint32_t NFEE2:1; 01365 vuint32_t NFE2:1; 01366 vuint32_t NLOCK3:1; 01367 vuint32_t NDSS3:2; 01368 vuint32_t NWRE3:1; 01369 vuint32_t:1; 01370 vuint32_t NREE3:1; 01371 vuint32_t NFEE3:1; 01372 vuint32_t NFE3:1; 01373 } B; 01374 } NCR; /* NMI Configuration Register */ 01375 01376 int32_t WKUP_reserved1[2]; 01377 01378 union { 01379 vuint32_t R; 01380 struct { 01381 vuint32_t EIF:32; 01382 } B; 01383 } WISR; /* Wakeup/Interrupt Status Flag Register */ 01384 01385 union { 01386 vuint32_t R; 01387 struct { 01388 vuint32_t EIRE:32; 01389 } B; 01390 } IRER; /* Interrupt Request Enable Register */ 01391 01392 union { 01393 vuint32_t R; 01394 struct { 01395 vuint32_t WRE:32; 01396 } B; 01397 } WRER; /* Wakeup Request Enable Register */ 01398 01399 int32_t WKUP_reserved2[2]; 01400 01401 union { 01402 vuint32_t R; 01403 struct { 01404 vuint32_t IREE:32; 01405 } B; 01406 } WIREER; /* Wakeup/Interrupt Rising-Edge Event Enable Register */ 01407 01408 union { 01409 vuint32_t R; 01410 struct { 01411 vuint32_t IFEE:32; 01412 } B; 01413 } WIFEER; /* Wakeup/Interrupt Falling-Edge Event Enable Register */ 01414 01415 union { 01416 vuint32_t R; 01417 struct { 01418 vuint32_t IFE:32; 01419 } B; 01420 } WIFER; /* Wakeup/Interrupt Filter Enable Register */ 01421 01422 union { 01423 vuint32_t R; 01424 struct { 01425 vuint32_t IPUE:32; 01426 } B; 01427 } WIPUER; /* Wakeup/Interrupt Pullup Enable Register */ 01428 01429 }; /* end of WKUP_tag */ 01430 /****************************************************************************/ 01431 /* MODULE : LINFLEX */ 01432 /****************************************************************************/ 01433 01434 struct LINFLEX_tag { 01435 01436 int16_t LINFLEX_reserved1; 01437 01438 union { 01439 vuint16_t R; 01440 struct { 01441 vuint16_t CCD:1; 01442 vuint16_t CFD:1; 01443 vuint16_t LASE:1; 01444 vuint16_t AWUM:1; // LCH vuint16_t AUTOWU:1; 01445 vuint16_t MBL:4; 01446 vuint16_t BF:1; 01447 vuint16_t SFTM:1; 01448 vuint16_t LBKM:1; 01449 vuint16_t MME:1; 01450 vuint16_t SBDT:1; // LCH vuint16_t SSBL:1; 01451 vuint16_t RBLM:1; 01452 vuint16_t SLEEP:1; 01453 vuint16_t INIT:1; 01454 } B; 01455 } LINCR1; /* LINFLEX LIN Control Register 1 */ 01456 01457 int16_t LINFLEX_reserved2; 01458 01459 union { 01460 vuint16_t R; 01461 struct { 01462 vuint16_t SZIE:1; 01463 vuint16_t OCIE:1; 01464 vuint16_t BEIE:1; 01465 vuint16_t CEIE:1; 01466 vuint16_t HEIE:1; 01467 vuint16_t:2; 01468 vuint16_t FEIE:1; 01469 vuint16_t BOIE:1; 01470 vuint16_t LSIE:1; 01471 vuint16_t WUIE:1; 01472 vuint16_t DBFIE:1; 01473 vuint16_t DBEIE:1; 01474 vuint16_t DRIE:1; 01475 vuint16_t DTIE:1; 01476 vuint16_t HRIE:1; 01477 } B; 01478 } LINIER; /* LINFLEX LIN Interrupt Enable Register */ 01479 01480 int16_t LINFLEX_reserved3; 01481 01482 union { 01483 vuint16_t R; 01484 struct { 01485 vuint16_t LINS:4; 01486 vuint16_t:2; 01487 vuint16_t RMB:1; 01488 vuint16_t:1; 01489 vuint16_t RBSY:1; // LCH vuint16_t RXBUSY:1; 01490 vuint16_t RPS:1; // LCH vuint16_t RDI:1; 01491 vuint16_t WUF:1; 01492 vuint16_t DBFF:1; 01493 vuint16_t DBEF:1; 01494 vuint16_t DRF:1; 01495 vuint16_t DTF:1; 01496 vuint16_t HRF:1; 01497 } B; 01498 } LINSR; /* LINFLEX LIN Status Register */ 01499 01500 int16_t LINFLEX_reserved4; 01501 01502 union { 01503 vuint16_t R; 01504 struct { 01505 vuint16_t SZF:1; 01506 vuint16_t OCF:1; 01507 vuint16_t BEF:1; 01508 vuint16_t CEF:1; 01509 vuint16_t SFEF:1; 01510 vuint16_t BDEF:1; 01511 vuint16_t IDPEF:1; 01512 vuint16_t FEF:1; 01513 vuint16_t BOF:1; 01514 vuint16_t:6; 01515 vuint16_t NF:1; 01516 } B; 01517 } LINESR; /* LINFLEX LIN Error Status Register */ 01518 01519 int16_t LINFLEX_reserved5; 01520 01521 union { 01522 vuint16_t R; 01523 struct { 01524 vuint16_t:1; 01525 vuint16_t TDFL:2; 01526 vuint16_t:1; 01527 vuint16_t RDFL:2; 01528 vuint16_t:4; 01529 vuint16_t RXEN:1; 01530 vuint16_t TXEN:1; 01531 vuint16_t OP:1; //LCH vuint16_t PARITYODD:1; 01532 vuint16_t PCE:1; 01533 vuint16_t WL:1; 01534 vuint16_t UART:1; 01535 } B; 01536 } UARTCR; /* LINFLEX UART Mode Control Register */ 01537 01538 int16_t LINFLEX_reserved6; 01539 01540 union { 01541 vuint16_t R; 01542 struct { 01543 vuint16_t SZF:1; 01544 vuint16_t OCF:1; 01545 vuint16_t PE:4; 01546 vuint16_t RMB:1; 01547 vuint16_t FEF:1; 01548 vuint16_t BOF:1; 01549 vuint16_t RPS:1; // LCH vuint16_t RDI:1; 01550 vuint16_t WUF:1; 01551 vuint16_t:2; 01552 vuint16_t DRF:1; 01553 vuint16_t DTF:1; 01554 vuint16_t NF:1; 01555 } B; 01556 } UARTSR; /* LINFLEX UART Mode Status Register */ 01557 01558 int16_t LINFLEX_reserved7; 01559 01560 union { 01561 vuint16_t R; 01562 struct { 01563 vuint16_t:5; 01564 vuint16_t LTOM:1; //LCH vuint16_t MODE:1; 01565 vuint16_t IOT:1; 01566 vuint16_t TOCE:1; 01567 vuint16_t CNT:8; 01568 } B; 01569 } LINTCSR; /* LINFLEX LIN Time-Out Control Status Register */ 01570 01571 int16_t LINFLEX_reserved8; 01572 01573 union { 01574 vuint16_t R; 01575 struct { 01576 vuint16_t OC2:8; 01577 vuint16_t OC1:8; 01578 } B; 01579 } LINOCR; /* LINFLEX LIN Output Compare Register */ 01580 01581 int16_t LINFLEX_reserved9; 01582 01583 union { 01584 vuint16_t R; 01585 struct { 01586 vuint16_t:4; 01587 vuint16_t RTO:4; // LCH vuint16_t RTC:4; 01588 vuint16_t:1; 01589 vuint16_t HTO:7; // LCH vuint16_t HTC:7; 01590 } B; 01591 } LINTOCR; /* LINFLEX LIN Output Compare Register */ 01592 01593 int16_t LINFLEX_reserved10; 01594 01595 union { 01596 vuint16_t R; 01597 struct { 01598 vuint16_t:12; 01599 vuint16_t DIV_F:4; // LCH vuint16_t FBR:4; 01600 } B; 01601 } LINFBRR; /* LINFLEX LIN Fractional Baud Rate Register */ 01602 01603 int16_t LINFLEX_reserved11; 01604 01605 union { 01606 vuint16_t R; 01607 struct { 01608 vuint16_t:3; 01609 vuint16_t DIV_M:13; // LCH vuint16_t IBR:13; 01610 } B; 01611 } LINIBRR; /* LINFLEX LIN Integer Baud Rate Register */ 01612 01613 int16_t LINFLEX_reserved12; 01614 01615 union { 01616 vuint16_t R; 01617 struct { 01618 vuint16_t:8; 01619 vuint16_t CF:8; 01620 } B; 01621 } LINCFR; /* LINFLEX LIN Checksum Field Register */ 01622 01623 int16_t LINFLEX_reserved13; 01624 01625 union { 01626 vuint16_t R; 01627 struct { 01628 vuint16_t:1; 01629 vuint16_t IOBE:1; 01630 vuint16_t IOPE:1; 01631 vuint16_t WURQ:1; 01632 vuint16_t DDRQ:1; 01633 vuint16_t DTRQ:1; 01634 vuint16_t ABRQ:1; 01635 vuint16_t HTRQ:1; 01636 vuint16_t:8; 01637 } B; 01638 } LINCR2; /* LINFLEX LIN Control Register 2 */ 01639 01640 int16_t LINFLEX_reserved14; 01641 01642 union { 01643 vuint16_t R; 01644 struct { 01645 vuint16_t DFL:6; 01646 vuint16_t DIR:1; 01647 vuint16_t CCS:1; 01648 vuint16_t:2; // LCH vuint16_t:1; 01649 vuint16_t ID:6; 01650 } B; 01651 } BIDR; /* LINFLEX Buffer Identifier Register */ 01652 01653 union { 01654 vuint32_t R; 01655 struct { 01656 vuint32_t DATA3:8; 01657 vuint32_t DATA2:8; 01658 vuint32_t DATA1:8; 01659 vuint32_t DATA0:8; 01660 } B; 01661 } BDRL; /* LINFLEX Buffer Data Register Least Significant */ 01662 01663 union { 01664 vuint32_t R; 01665 struct { 01666 vuint32_t DATA7:8; 01667 vuint32_t DATA6:8; 01668 vuint32_t DATA5:8; 01669 vuint32_t DATA4:8; 01670 } B; 01671 } BDRM; /* LINFLEX Buffer Data Register Most Significant */ 01672 01673 int16_t LINFLEX_reserved15; 01674 01675 union { 01676 vuint16_t R; 01677 struct { 01678 vuint16_t:8; 01679 vuint16_t FACT:8; 01680 } B; 01681 } IFER; /* LINFLEX Identifier Filter Enable Register */ 01682 01683 int16_t LINFLEX_reserved16; 01684 01685 union { 01686 vuint16_t R; 01687 struct { 01688 vuint16_t:12; 01689 vuint16_t IFMI:4; 01690 } B; 01691 } IFMI; /* LINFLEX Identifier Filter Match Index Register */ 01692 01693 int16_t LINFLEX_reserved17; 01694 01695 union { 01696 vuint16_t R; 01697 struct { 01698 vuint16_t:12; 01699 vuint16_t IFM:4; 01700 } B; 01701 } IFMR; /* LINFLEX Identifier Filter Mode Register */ 01702 01703 int16_t LINFLEX_reserved18; 01704 01705 union { 01706 vuint16_t R; 01707 struct { 01708 vuint16_t:3; 01709 vuint16_t DFL:3; 01710 vuint16_t DIR:1; 01711 vuint16_t CCS:1; 01712 vuint16_t:2; 01713 vuint16_t ID:6; 01714 } B; 01715 } IFCR0; /* LINFLEX Identifier Filter Control Register 0 */ 01716 01717 int16_t LINFLEX_reserved19; 01718 01719 union { 01720 vuint16_t R; 01721 struct { 01722 vuint16_t:3; 01723 vuint16_t DFL:3; 01724 vuint16_t DIR:1; 01725 vuint16_t CCS:1; 01726 vuint16_t:2; 01727 vuint16_t ID:6; 01728 } B; 01729 } IFCR1; /* LINFLEX Identifier Filter Control Register 1 */ 01730 01731 int16_t LINFLEX_reserved20; 01732 01733 union { 01734 vuint16_t R; 01735 struct { 01736 vuint16_t:3; 01737 vuint16_t DFL:3; 01738 vuint16_t DIR:1; 01739 vuint16_t CCS:1; 01740 vuint16_t:2; 01741 vuint16_t ID:6; 01742 } B; 01743 } IFCR2; /* LINFLEX Identifier Filter Control Register 2 */ 01744 01745 int16_t LINFLEX_reserved21; 01746 01747 union { 01748 vuint16_t R; 01749 struct { 01750 vuint16_t:3; 01751 vuint16_t DFL:3; 01752 vuint16_t DIR:1; 01753 vuint16_t CCS:1; 01754 vuint16_t:2; 01755 vuint16_t ID:6; 01756 } B; 01757 } IFCR3; /* LINFLEX Identifier Filter Control Register 3 */ 01758 01759 int16_t LINFLEX_reserved22; 01760 01761 union { 01762 vuint16_t R; 01763 struct { 01764 vuint16_t:3; 01765 vuint16_t DFL:3; 01766 vuint16_t DIR:1; 01767 vuint16_t CCS:1; 01768 vuint16_t:2; 01769 vuint16_t ID:6; 01770 } B; 01771 } IFCR4; /* LINFLEX Identifier Filter Control Register 4 */ 01772 01773 int16_t LINFLEX_reserved23; 01774 01775 union { 01776 vuint16_t R; 01777 struct { 01778 vuint16_t:3; 01779 vuint16_t DFL:3; 01780 vuint16_t DIR:1; 01781 vuint16_t CCS:1; 01782 vuint16_t:2; 01783 vuint16_t ID:6; 01784 } B; 01785 } IFCR5; /* LINFLEX Identifier Filter Control Register 5 */ 01786 01787 int16_t LINFLEX_reserved24; 01788 01789 union { 01790 vuint16_t R; 01791 struct { 01792 vuint16_t:3; 01793 vuint16_t DFL:3; 01794 vuint16_t DIR:1; 01795 vuint16_t CCS:1; 01796 vuint16_t:2; 01797 vuint16_t ID:6; 01798 } B; 01799 } IFCR6; /* LINFLEX Identifier Filter Control Register 6 */ 01800 01801 int16_t LINFLEX_reserved25; 01802 01803 union { 01804 vuint16_t R; 01805 struct { 01806 vuint16_t:3; 01807 vuint16_t DFL:3; 01808 vuint16_t DIR:1; 01809 vuint16_t CCS:1; 01810 vuint16_t:2; 01811 vuint16_t ID:6; 01812 } B; 01813 } IFCR7; /* LINFLEX Identifier Filter Control Register 7 */ 01814 01815 }; /* end of LINFLEX_tag */ 01816 /****************************************************************************/ 01817 /* MODULE : ME */ 01818 /****************************************************************************/ 01819 struct ME_tag { 01820 01821 union { 01822 vuint32_t R; 01823 struct { 01824 vuint32_t S_CURRENTMODE:4; 01825 vuint32_t S_MTRANS:1; 01826 vuint32_t S_DC:1; 01827 vuint32_t:2; 01828 vuint32_t S_PDO:1; 01829 vuint32_t:2; 01830 vuint32_t S_MVR:1; 01831 vuint32_t S_DFLA:2; 01832 vuint32_t S_CFLA:2; 01833 vuint32_t:8; 01834 vuint32_t S_PLL1:1; 01835 vuint32_t S_PLL0:1; 01836 vuint32_t S_OSC:1; 01837 vuint32_t S_RC:1; 01838 vuint32_t S_SYSCLK:4; 01839 } B; 01840 } GS; /* Global Status Register */ 01841 01842 union { 01843 vuint32_t R; 01844 struct { 01845 vuint32_t TARGET_MODE:4; 01846 vuint32_t:12; 01847 vuint32_t KEY:16; 01848 } B; 01849 } MCTL; /* Mode Control Register */ 01850 01851 union { 01852 vuint32_t R; 01853 struct { 01854 vuint32_t:18; 01855 vuint32_t STANDBY0:1; 01856 vuint32_t:2; 01857 vuint32_t STOP0:1; 01858 vuint32_t:1; 01859 vuint32_t HALT0:1; 01860 vuint32_t RUN3:1; 01861 vuint32_t RUN2:1; 01862 vuint32_t RUN1:1; 01863 vuint32_t RUN0:1; 01864 vuint32_t DRUN:1; 01865 vuint32_t SAFE:1; 01866 vuint32_t TEST:1; 01867 vuint32_t RESET:1; 01868 } B; 01869 } MER; /* Mode Enable Register */ 01870 01871 union { 01872 vuint32_t R; 01873 struct { 01874 vuint32_t:28; 01875 vuint32_t I_CONF:1; 01876 vuint32_t I_MODE:1; 01877 vuint32_t I_AFE:1; 01878 vuint32_t I_TC:1; 01879 } B; 01880 } IS; /* Interrupt Status Register */ 01881 01882 union { 01883 vuint32_t R; 01884 struct { 01885 vuint32_t:28; 01886 vuint32_t M_CONF:1; 01887 vuint32_t M_MODE:1; 01888 vuint32_t M_AFE:1; 01889 vuint32_t M_TC:1; 01890 } B; 01891 } IM; /* Interrupt Mask Register */ 01892 01893 union { 01894 vuint32_t R; 01895 struct { 01896 vuint32_t:27; 01897 vuint32_t S_MTI:1; 01898 vuint32_t S_MRI:1; 01899 vuint32_t S_DMA:1; 01900 vuint32_t S_NMA:1; 01901 vuint32_t S_SEA:1; 01902 } B; 01903 } IMTS; /* Invalid Mode Transition Status Register */ 01904 01905 int32_t ME_reserved0[2]; 01906 01907 union { 01908 vuint32_t R; 01909 struct { 01910 vuint32_t:8; 01911 vuint32_t PDO:1; 01912 vuint32_t:2; 01913 vuint32_t MVRON:1; 01914 vuint32_t DFLAON:2; 01915 vuint32_t CFLAON:2; 01916 vuint32_t:8; 01917 vuint32_t PLL2ON:1; 01918 vuint32_t PLL1ON:1; 01919 vuint32_t XOSC0ON:1; 01920 vuint32_t IRCON:1; 01921 vuint32_t SYSCLK:4; 01922 } B; 01923 } RESET; /* Reset Mode Configuration Register */ 01924 01925 union { 01926 vuint32_t R; 01927 struct { 01928 vuint32_t:8; 01929 vuint32_t PDO:1; 01930 vuint32_t:2; 01931 vuint32_t MVRON:1; 01932 vuint32_t DFLAON:2; 01933 vuint32_t CFLAON:2; 01934 vuint32_t:8; 01935 vuint32_t PLL2ON:1; 01936 vuint32_t PLL1ON:1; 01937 vuint32_t XOSC0ON:1; 01938 vuint32_t IRCON:1; 01939 vuint32_t SYSCLK:4; 01940 } B; 01941 } TEST; /* Test Mode Configuration Register */ 01942 01943 union { 01944 vuint32_t R; 01945 struct { 01946 vuint32_t:8; 01947 vuint32_t PDO:1; 01948 vuint32_t:2; 01949 vuint32_t MVRON:1; 01950 vuint32_t DFLAON:2; 01951 vuint32_t CFLAON:2; 01952 vuint32_t:8; 01953 vuint32_t PLL2ON:1; 01954 vuint32_t PLL1ON:1; 01955 vuint32_t XOSC0ON:1; 01956 vuint32_t IRCON:1; 01957 vuint32_t SYSCLK:4; 01958 } B; 01959 } SAFE; /* Safe Mode Configuration Register */ 01960 01961 union { 01962 vuint32_t R; 01963 struct { 01964 vuint32_t:8; 01965 vuint32_t PDO:1; 01966 vuint32_t:2; 01967 vuint32_t MVRON:1; 01968 vuint32_t DFLAON:2; 01969 vuint32_t CFLAON:2; 01970 vuint32_t:8; 01971 vuint32_t PLL2ON:1; 01972 vuint32_t PLL1ON:1; 01973 vuint32_t XOSC0ON:1; 01974 vuint32_t IRCON:1; 01975 vuint32_t SYSCLK:4; 01976 } B; 01977 } DRUN; /* DRUN Mode Configuration Register */ 01978 01979 union { 01980 vuint32_t R; 01981 struct { 01982 vuint32_t:8; 01983 vuint32_t PDO:1; 01984 vuint32_t:2; 01985 vuint32_t MVRON:1; 01986 vuint32_t DFLAON:2; 01987 vuint32_t CFLAON:2; 01988 vuint32_t:8; 01989 vuint32_t PLL2ON:1; 01990 vuint32_t PLL1ON:1; 01991 vuint32_t XOSC0ON:1; 01992 vuint32_t IRCON:1; 01993 vuint32_t SYSCLK:4; 01994 } B; 01995 } RUN[4]; /* RUN 0->4 Mode Configuration Register */ 01996 01997 union { 01998 vuint32_t R; 01999 struct { 02000 vuint32_t:8; 02001 vuint32_t PDO:1; 02002 vuint32_t:2; 02003 vuint32_t MVRON:1; 02004 vuint32_t DFLAON:2; 02005 vuint32_t CFLAON:2; 02006 vuint32_t:8; 02007 vuint32_t PLL2ON:1; 02008 vuint32_t PLL1ON:1; 02009 vuint32_t XOSC0ON:1; 02010 vuint32_t IRCON:1; 02011 vuint32_t SYSCLK:4; 02012 } B; 02013 } HALT0; /* HALT0 Mode Configuration Register */ 02014 02015 int32_t ME_reserved1; 02016 02017 union { 02018 vuint32_t R; 02019 struct { 02020 vuint32_t:8; 02021 vuint32_t PDO:1; 02022 vuint32_t:2; 02023 vuint32_t MVRON:1; 02024 vuint32_t DFLAON:2; 02025 vuint32_t CFLAON:2; 02026 vuint32_t:8; 02027 vuint32_t PLL2ON:1; 02028 vuint32_t PLL1ON:1; 02029 vuint32_t XOSC0ON:1; 02030 vuint32_t IRCON:1; 02031 vuint32_t SYSCLK:4; 02032 } B; 02033 } STOP0; /* STOP0 Mode Configuration Register */ 02034 02035 int32_t ME_reserved2[2]; 02036 02037 union { 02038 vuint32_t R; 02039 struct { 02040 vuint32_t:8; 02041 vuint32_t PDO:1; 02042 vuint32_t:2; 02043 vuint32_t MVRON:1; 02044 vuint32_t DFLAON:2; 02045 vuint32_t CFLAON:2; 02046 vuint32_t:8; 02047 vuint32_t PLL2ON:1; 02048 vuint32_t PLL1ON:1; 02049 vuint32_t XOSC0ON:1; 02050 vuint32_t IRCON:1; 02051 vuint32_t SYSCLK:4; 02052 } B; 02053 } STANDBY0; /* STANDBY0 Mode Configuration Register */ 02054 02055 int32_t ME_reserved3[2]; 02056 02057 union { 02058 vuint32_t R; 02059 struct { 02060 vuint32_t PERIPH:32; 02061 } B; 02062 } PS[4]; /* Peripheral Status 0->4 Register */ 02063 02064 int32_t ME_reserved4[4]; 02065 02066 union { 02067 vuint32_t R; 02068 struct { 02069 vuint32_t:24; 02070 vuint32_t RUN3:1; 02071 vuint32_t RUN2:1; 02072 vuint32_t RUN1:1; 02073 vuint32_t RUN0:1; 02074 vuint32_t DRUN:1; 02075 vuint32_t SAFE:1; 02076 vuint32_t TEST:1; 02077 vuint32_t RESET:1; 02078 } B; 02079 } RUNPC[8]; /* RUN Peripheral Configuration 0->7 Register */ 02080 02081 union { 02082 vuint32_t R; 02083 struct { 02084 vuint32_t:18; 02085 vuint32_t STANDBY0:1; 02086 vuint32_t:2; 02087 vuint32_t STOP0:1; 02088 vuint32_t:1; 02089 vuint32_t HALT0:1; 02090 vuint32_t:8; 02091 } B; 02092 } LPPC[8]; /* Low Power Peripheral Configuration 0->7 Register */ 02093 02094 union { 02095 vuint8_t R; 02096 struct { 02097 vuint8_t:1; 02098 vuint8_t DBG_F:1; 02099 vuint8_t LP_CFG:3; 02100 vuint8_t RUN_CFG:3; 02101 } B; 02102 } PCTL[144]; /* Peripheral Control 0->143 Register */ 02103 02104 }; /* end of ME_tag */ 02105 /****************************************************************************/ 02106 /* MODULE : CGM */ 02107 /****************************************************************************/ 02108 struct CGM_tag { 02109 02110 /* The CGM provides a unified register interface, enabling access to 02111 all clock sources: 02112 02113 Clock Type | Starting Address Map | Associated Clock Sources 02114 ------------------------------------------------------------ 02115 System | C3FE0000 | OSC_CTL 02116 " | - | Reserved 02117 " | C3FE0040 | LPOSC_CTL 02118 " | C3FE0060 | RC_CTL 02119 " | C3FE0080 | LPRC_CTL 02120 " | C3FE00A0 | FMPLL_0 02121 " | C3FE00C0 | FMPLL_1 02122 " | - | Reserved 02123 MISC | C3FE0100 | CMU_0 & CMU_1 02124 02125 */ 02126 02127 /************************************/ 02128 /* OSC_CTL @ CGM base address + 0x0000 */ 02129 /************************************/ 02130 union { 02131 vuint32_t R; 02132 struct { 02133 vuint32_t OSCBYP:1; 02134 vuint32_t:7; 02135 vuint32_t EOCV:8; 02136 vuint32_t M_OSC:1; 02137 vuint32_t:2; 02138 vuint32_t OSCDIV:5; 02139 vuint32_t I_OSC:1; 02140 vuint32_t:5; 02141 vuint32_t S_OSC:1; 02142 vuint32_t OSCON:1; 02143 } B; 02144 } OSC_CTL; /* Main OSC Control Register */ 02145 02146 /************************************/ 02147 /* LPOSC_CTL @ CGM base address + 0x0040 */ 02148 /************************************/ 02149 int32_t CGM_reserved0[15]; /* (0x040 - 0x004)/4 = 0x0F */ 02150 /*int32_t $RESERVED[15]; */ 02151 02152 union { 02153 vuint32_t R; 02154 struct { 02155 vuint32_t OSCBYP:1; 02156 vuint32_t:7; 02157 vuint32_t EOCV:8; 02158 vuint32_t M_OSC:1; 02159 vuint32_t:2; 02160 vuint32_t OSCDIV:5; 02161 vuint32_t I_OSC:1; 02162 vuint32_t:5; 02163 vuint32_t S_OSC:1; 02164 vuint32_t OSCON:1; 02165 } B; 02166 } LPOSC_CTL; /* Low Power OSC Control Register */ 02167 02168 /************************************/ 02169 /* RC_CTL @ CGM base address + 0x0060 */ 02170 /************************************/ 02171 int32_t CGM_reserved1[7]; /* (0x060 - 0x044)/4 = 0x07 */ 02172 02173 union { 02174 vuint32_t R; 02175 struct { 02176 vuint32_t:10; 02177 vuint32_t RCTRIM:6; 02178 vuint32_t:3; 02179 vuint32_t RCDIV:5; 02180 vuint32_t:2; 02181 vuint32_t S_RC_STDBY:1; 02182 vuint32_t:5; 02183 } B; 02184 } RC_CTL; /* RC OSC Control Register */ 02185 02186 /*************************************/ 02187 /* LPRC_CTL @ CGM base address + 0x0080 */ 02188 /*************************************/ 02189 int32_t CGM_reserved2[7]; /* (0x080 - 0x064)/4 = 0x07 */ 02190 02191 union { 02192 vuint32_t R; 02193 struct { 02194 vuint32_t:11; 02195 vuint32_t LRCTRIM:5; 02196 vuint32_t:3; 02197 vuint32_t LPRCDIV:5; 02198 vuint32_t:3; 02199 vuint32_t S_LPRC:1; 02200 vuint32_t:3; 02201 vuint32_t LPRCON_STDBY:1; 02202 } B; 02203 } LPRC_CTL; /* Low Power RC OSC Control Register */ 02204 02205 /************************************/ 02206 /* FMPLL_0 @ CGM base address + 0x00A0 */ 02207 /* FMPLL_1 @ CGM base address + 0x0100 */ 02208 /************************************/ 02209 int32_t CGM_reserved3[7]; /* (0x0A0 - 0x084)/4 = 0x07 */ 02210 02211 struct { 02212 union { 02213 vuint32_t R; 02214 struct { 02215 vuint32_t:2; 02216 vuint32_t IDF:4; 02217 vuint32_t ODF:2; 02218 vuint32_t:1; 02219 vuint32_t NDIV:7; 02220 vuint32_t:7; 02221 vuint32_t EN_PLL_SW:1; 02222 vuint32_t MODE:1; 02223 vuint32_t UNLOCK_ONCE:1; 02224 vuint32_t:1; 02225 vuint32_t I_LOCK:1; 02226 vuint32_t S_LOCK:1; 02227 vuint32_t PLL_FAIL_MASK:1; 02228 vuint32_t PLL_FAIL_FLAG:1; 02229 vuint32_t:1; 02230 } B; 02231 } CR; /* FMPLL Control Register */ 02232 02233 union { 02234 vuint32_t R; 02235 struct { 02236 vuint32_t STRB_BYPASS:1; 02237 vuint32_t:1; 02238 vuint32_t SPRD_SEL:1; 02239 vuint32_t MOD_PERIOD:13; 02240 vuint32_t FM_EN:1; 02241 vuint32_t INC_STEP:15; 02242 } B; 02243 } MR; /* FMPLL Modulation Register */ 02244 02245 int32_t CGM_reserved4[6]; /* (0x0C0 - 0x0A8)/4 = 0x06 */ 02246 /* (0x0E0 - 0x0C8)/4 = 0x06 */ 02247 02248 } FMPLL[2]; 02249 02250 /************************************/ 02251 /* CMU @ CGM base address + 0x0100 */ 02252 /************************************/ 02253 int32_t CGM_reserved5[8]; /* (0x100 - 0x0E0)/4 = 0x08 */ 02254 02255 union { 02256 vuint32_t R; 02257 struct { 02258 vuint32_t:8; 02259 vuint32_t SFM:1; 02260 vuint32_t:13; 02261 vuint32_t CLKSEL1:2; 02262 vuint32_t:5; 02263 vuint32_t RCDIV:2; 02264 vuint32_t CME_A:1; 02265 } B; 02266 } CMU_0_CSR; /* Control Status Register */ 02267 02268 union { 02269 vuint32_t R; 02270 struct { 02271 vuint32_t:12; 02272 vuint32_t FD:20; 02273 } B; 02274 } CMU_0_FDR; /* Frequency Display Register */ 02275 02276 union { 02277 vuint32_t R; 02278 struct { 02279 vuint32_t:20; 02280 vuint32_t HFREF_A:12; 02281 } B; 02282 } CMU_0_HFREFR_A; /* High Frequency Reference Register PLL_A Register */ 02283 02284 union { 02285 vuint32_t R; 02286 struct { 02287 vuint32_t:20; 02288 vuint32_t LFREF_A:12; 02289 } B; 02290 } CMU_0_LFREFR_A; /* Low Frequency Reference Register PLL_A Register */ 02291 02292 union { 02293 vuint32_t R; 02294 struct { 02295 vuint32_t:28; 02296 vuint32_t FLCI_A:1; 02297 vuint32_t FHHI_A:1; 02298 vuint32_t FLLI_A:1; 02299 vuint32_t OLRI:1; 02300 } B; 02301 } CMU_0_ISR; /* Interrupt Status Register */ 02302 02303 union { 02304 vuint32_t R; 02305 struct { 02306 vuint32_t:32; 02307 } B; 02308 } CMU_0_IMR; /* Interrupt Mask Register */ 02309 02310 union { 02311 vuint32_t R; 02312 struct { 02313 vuint32_t:12; 02314 vuint32_t MD:20; 02315 } B; 02316 } CMU_0_MDR; /* Measurement Duration Register */ 02317 02318 int32_t CGM_reserved5A; /* (0x020 - 0x01C)/4 = 0x01 */ 02319 02320 union { 02321 vuint32_t R; 02322 struct { 02323 vuint32_t:8; 02324 vuint32_t SFM:1; 02325 vuint32_t:13; 02326 vuint32_t CLKSEL1:2; 02327 vuint32_t:5; 02328 vuint32_t RCDIV:2; 02329 vuint32_t CME_A:1; 02330 } B; 02331 } CMU_1_CSR; /* Control Status Register */ 02332 02333 int32_t CGM_reserved6; /* (0x028 - 0x024)/4 = 0x01 */ 02334 02335 union { 02336 vuint32_t R; 02337 struct { 02338 vuint32_t:20; 02339 vuint32_t HFREF_A:12; 02340 } B; 02341 } CMU_1_HFREFR_A; /* High Frequency Reference Register PLL_A Register */ 02342 02343 union { 02344 vuint32_t R; 02345 struct { 02346 vuint32_t:20; 02347 vuint32_t LFREF_A:12; 02348 } B; 02349 } CMU_1_LFREFR_A; /* Low Frequency Reference Register PLL_A Register */ 02350 02351 union { 02352 vuint32_t R; 02353 struct { 02354 vuint32_t:28; 02355 vuint32_t FLCI_A:1; 02356 vuint32_t FHHI_A:1; 02357 vuint32_t FLLI_A:1; 02358 vuint32_t:1; 02359 } B; 02360 } CMU_1_ISR; /* Interrupt Status Register */ 02361 02362 /************************************/ 02363 /* CGM General Registers @ CGM base address + 0x0370 */ 02364 /************************************/ 02365 int32_t CGM_reserved7[143]; /* (0x370 - 0x134)/4 = 0x8F */ 02366 02367 union { 02368 vuint32_t R; 02369 struct { 02370 vuint32_t:31; 02371 vuint32_t EN:1; 02372 } B; 02373 } OCEN; /* Output Clock Enable Register */ 02374 02375 union { 02376 vuint32_t R; 02377 struct { 02378 vuint32_t:2; 02379 vuint32_t SELDIV:2; 02380 vuint32_t SELCTL:4; 02381 vuint32_t:24; 02382 } B; 02383 } OCDSSC; /* Output Clock Division Select Register */ 02384 02385 union { 02386 vuint32_t R; 02387 struct { 02388 vuint32_t:4; 02389 vuint32_t SELSTAT:4; 02390 vuint32_t:24; 02391 } B; 02392 } SCSS; /* System Clock Select Status */ 02393 02394 union { 02395 vuint32_t R; 02396 struct { 02397 vuint32_t DE0:1; 02398 vuint32_t:3; 02399 vuint32_t DIV0:4; 02400 vuint32_t DE1:1; 02401 vuint32_t:3; 02402 vuint32_t DIV1:4; 02403 vuint32_t DE2:1; 02404 vuint32_t:3; 02405 vuint32_t DIV2:4; 02406 vuint32_t DE3:1; 02407 vuint32_t:3; 02408 vuint32_t DIV3:4; 02409 } B; 02410 } SCDC; /* GSystem Clock Divider Configuration 0->4 */ 02411 02412 union { 02413 vuint32_t R; 02414 struct { 02415 vuint32_t:4; 02416 vuint32_t SELCTL:4; 02417 vuint32_t:24; 02418 } B; 02419 } AC0SC; /* Aux Clock 0 Select Control */ 02420 02421 union { 02422 vuint32_t R; 02423 struct { 02424 vuint32_t DE0:1; 02425 vuint32_t:3; 02426 vuint32_t DIV0:4; 02427 vuint32_t DE1:1; 02428 vuint32_t:3; 02429 vuint32_t DIV1:4; 02430 vuint32_t DE2:1; 02431 vuint32_t:3; 02432 vuint32_t DIV2:4; 02433 vuint32_t DE3:1; 02434 vuint32_t:3; 02435 vuint32_t DIV3:4; 02436 } B; 02437 } AC0DC; /* Aux Clock 0 Divider Configuration 0->3 */ 02438 02439 union { 02440 vuint32_t R; 02441 struct { 02442 vuint32_t:4; 02443 vuint32_t SELCTL:4; 02444 vuint32_t:24; 02445 } B; 02446 } AC1SC; /* Aux Clock 1 Select Control */ 02447 02448 union { 02449 vuint32_t R; 02450 struct { 02451 vuint32_t DE0:1; 02452 vuint32_t:3; 02453 vuint32_t DIV0:4; 02454 vuint32_t DE1:1; 02455 vuint32_t:3; 02456 vuint32_t DIV1:4; 02457 vuint32_t DE2:1; 02458 vuint32_t:3; 02459 vuint32_t DIV2:4; 02460 vuint32_t DE3:1; 02461 vuint32_t:3; 02462 vuint32_t DIV3:4; 02463 } B; 02464 } AC1DC; /* Aux Clock 1 Divider Configuration 0->3 */ 02465 02466 union { 02467 vuint32_t R; 02468 struct { 02469 vuint32_t:4; 02470 vuint32_t SELCTL:4; 02471 vuint32_t:24; 02472 } B; 02473 } AC2SC; /* Aux Clock 2 Select Control */ 02474 02475 union { 02476 vuint32_t R; 02477 struct { 02478 vuint32_t DE0:1; 02479 vuint32_t:3; 02480 vuint32_t DIV0:4; 02481 vuint32_t DE1:1; 02482 vuint32_t:3; 02483 vuint32_t DIV1:4; 02484 vuint32_t DE2:1; 02485 vuint32_t:3; 02486 vuint32_t DIV2:4; 02487 vuint32_t DE3:1; 02488 vuint32_t:3; 02489 vuint32_t DIV3:4; 02490 } B; 02491 } AC2DC; /* Aux Clock 2 Divider Configuration 0->3 */ 02492 02493 union { 02494 vuint32_t R; 02495 struct { 02496 vuint32_t:4; 02497 vuint32_t SELCTL:4; 02498 vuint32_t:24; 02499 } B; 02500 } AC3SC; /* Aux Clock 3 Select Control */ 02501 02502 union { 02503 vuint32_t R; 02504 struct { 02505 vuint32_t DE0:1; 02506 vuint32_t:3; 02507 vuint32_t DIV0:4; 02508 vuint32_t DE1:1; 02509 vuint32_t:3; 02510 vuint32_t DIV1:4; 02511 vuint32_t DE2:1; 02512 vuint32_t:3; 02513 vuint32_t DIV2:4; 02514 vuint32_t DE3:1; 02515 vuint32_t:3; 02516 vuint32_t DIV3:4; 02517 } B; 02518 } AC3DC; /* Aux Clock 3 Divider Configuration 0->3 */ 02519 02520 union { 02521 vuint32_t R; 02522 struct { 02523 vuint32_t:4; 02524 vuint32_t SELCTL:4; 02525 vuint32_t:24; 02526 } B; 02527 } AC4SC; /* Aux Clock 4 Select Control */ 02528 02529 union { 02530 vuint32_t R; 02531 struct { 02532 vuint32_t DE0:1; 02533 vuint32_t:3; 02534 vuint32_t DIV0:4; 02535 vuint32_t DE1:1; 02536 vuint32_t:3; 02537 vuint32_t DIV1:4; 02538 vuint32_t DE2:1; 02539 vuint32_t:3; 02540 vuint32_t DIV2:4; 02541 vuint32_t DE3:1; 02542 vuint32_t:3; 02543 vuint32_t DIV3:4; 02544 } B; 02545 } AC4DC; /* Aux Clock 4 Divider Configuration 0->3 */ 02546 02547 union { 02548 vuint32_t R; 02549 struct { 02550 vuint32_t:4; 02551 vuint32_t SELCTL:4; 02552 vuint32_t:24; 02553 } B; 02554 } AC5SC; /* Aux Clock 5 Select Control */ 02555 02556 union { 02557 vuint32_t R; 02558 struct { 02559 vuint32_t DE0:1; 02560 vuint32_t:3; 02561 vuint32_t DIV0:4; 02562 vuint32_t DE1:1; 02563 vuint32_t:3; 02564 vuint32_t DIV1:4; 02565 vuint32_t DE2:1; 02566 vuint32_t:3; 02567 vuint32_t DIV2:4; 02568 vuint32_t DE3:1; 02569 vuint32_t:3; 02570 vuint32_t DIV3:4; 02571 } B; 02572 } AC5DC; /* Aux Clock 5 Divider Configuration 0->3 */ 02573 02574 union { 02575 vuint32_t R; 02576 struct { 02577 vuint32_t:4; 02578 vuint32_t SELCTL:4; 02579 vuint32_t:24; 02580 } B; 02581 } AC6SC; /* Aux Clock 6 Select Control */ 02582 02583 union { 02584 vuint32_t R; 02585 struct { 02586 vuint32_t DE0:1; 02587 vuint32_t:3; 02588 vuint32_t DIV0:4; 02589 vuint32_t DE1:1; 02590 vuint32_t:3; 02591 vuint32_t DIV1:4; 02592 vuint32_t DE2:1; 02593 vuint32_t:3; 02594 vuint32_t DIV2:4; 02595 vuint32_t DE3:1; 02596 vuint32_t:3; 02597 vuint32_t DIV3:4; 02598 } B; 02599 } AC6DC; /* Aux Clock 6 Divider Configuration 0->3 */ 02600 02601 union { 02602 vuint32_t R; 02603 struct { 02604 vuint32_t:4; 02605 vuint32_t SELCTL:4; 02606 vuint32_t:24; 02607 } B; 02608 } AC7SC; /* Aux Clock 7 Select Control */ 02609 02610 union { 02611 vuint32_t R; 02612 struct { 02613 vuint32_t DE0:1; 02614 vuint32_t:3; 02615 vuint32_t DIV0:4; 02616 vuint32_t DE1:1; 02617 vuint32_t:3; 02618 vuint32_t DIV1:4; 02619 vuint32_t DE2:1; 02620 vuint32_t:3; 02621 vuint32_t DIV2:4; 02622 vuint32_t DE3:1; 02623 vuint32_t:3; 02624 vuint32_t DIV3:4; 02625 } B; 02626 } AC7DC; /* Aux Clock 7 Divider Configuration 0->3 */ 02627 02628 union { 02629 vuint32_t R; 02630 struct { 02631 vuint32_t:4; 02632 vuint32_t SELCTL:4; 02633 vuint32_t:24; 02634 } B; 02635 } AC8SC; /* Aux Clock 8 Select Control */ 02636 02637 union { 02638 vuint32_t R; 02639 struct { 02640 vuint32_t DE0:1; 02641 vuint32_t:3; 02642 vuint32_t DIV0:4; 02643 vuint32_t DE1:1; 02644 vuint32_t:3; 02645 vuint32_t DIV1:4; 02646 vuint32_t DE2:1; 02647 vuint32_t:3; 02648 vuint32_t DIV2:4; 02649 vuint32_t DE3:1; 02650 vuint32_t:3; 02651 vuint32_t DIV3:4; 02652 } B; 02653 } AC8DC; /* Aux Clock 8 Divider Configuration 0->3 */ 02654 02655 union { 02656 vuint32_t R; 02657 struct { 02658 vuint32_t:4; 02659 vuint32_t SELCTL:4; 02660 vuint32_t:24; 02661 } B; 02662 } AC9SC; /* Aux Clock 9 Select Control */ 02663 02664 union { 02665 vuint32_t R; 02666 struct { 02667 vuint32_t DE0:1; 02668 vuint32_t:3; 02669 vuint32_t DIV0:4; 02670 vuint32_t DE1:1; 02671 vuint32_t:3; 02672 vuint32_t DIV1:4; 02673 vuint32_t DE2:1; 02674 vuint32_t:3; 02675 vuint32_t DIV2:4; 02676 vuint32_t DE3:1; 02677 vuint32_t:3; 02678 vuint32_t DIV3:4; 02679 } B; 02680 } AC9DC; /* Aux Clock 9 Divider Configuration 0->3 */ 02681 02682 union { 02683 vuint32_t R; 02684 struct { 02685 vuint32_t:4; 02686 vuint32_t SELCTL:4; 02687 vuint32_t:24; 02688 } B; 02689 } AC10SC; /* Aux Clock 10 Select Control */ 02690 02691 union { 02692 vuint32_t R; 02693 struct { 02694 vuint32_t DE0:1; 02695 vuint32_t:3; 02696 vuint32_t DIV0:4; 02697 vuint32_t DE1:1; 02698 vuint32_t:3; 02699 vuint32_t DIV1:4; 02700 vuint32_t DE2:1; 02701 vuint32_t:3; 02702 vuint32_t DIV2:4; 02703 vuint32_t DE3:1; 02704 vuint32_t:3; 02705 vuint32_t DIV3:4; 02706 } B; 02707 } AC10DC; /* Aux Clock 10 Divider Configuration 0->3 */ 02708 02709 union { 02710 vuint32_t R; 02711 struct { 02712 vuint32_t:4; 02713 vuint32_t SELCTL:4; 02714 vuint32_t:24; 02715 } B; 02716 } AC11SC; /* Aux Clock 11 Select Control */ 02717 02718 union { 02719 vuint32_t R; 02720 struct { 02721 vuint32_t DE0:1; 02722 vuint32_t:3; 02723 vuint32_t DIV0:4; 02724 vuint32_t DE1:1; 02725 vuint32_t:3; 02726 vuint32_t DIV1:4; 02727 vuint32_t DE2:1; 02728 vuint32_t:3; 02729 vuint32_t DIV2:4; 02730 vuint32_t DE3:1; 02731 vuint32_t:3; 02732 vuint32_t DIV3:4; 02733 } B; 02734 } AC11DC; /* Aux Clock 11 Divider Configuration 0->3 */ 02735 02736 union { 02737 vuint32_t R; 02738 struct { 02739 vuint32_t:4; 02740 vuint32_t SELCTL:4; 02741 vuint32_t:24; 02742 } B; 02743 } AC12SC; /* Aux Clock 12 Select Control */ 02744 02745 union { 02746 vuint32_t R; 02747 struct { 02748 vuint32_t DE0:1; 02749 vuint32_t:3; 02750 vuint32_t DIV0:4; 02751 vuint32_t DE1:1; 02752 vuint32_t:3; 02753 vuint32_t DIV1:4; 02754 vuint32_t DE2:1; 02755 vuint32_t:3; 02756 vuint32_t DIV2:4; 02757 vuint32_t DE3:1; 02758 vuint32_t:3; 02759 vuint32_t DIV3:4; 02760 } B; 02761 } AC12DC; /* Aux Clock 12 Divider Configuration 0->3 */ 02762 02763 union { 02764 vuint32_t R; 02765 struct { 02766 vuint32_t:4; 02767 vuint32_t SELCTL:4; 02768 vuint32_t:24; 02769 } B; 02770 } AC13SC; /* Aux Clock 13 Select Control */ 02771 02772 union { 02773 vuint32_t R; 02774 struct { 02775 vuint32_t DE0:1; 02776 vuint32_t:3; 02777 vuint32_t DIV0:4; 02778 vuint32_t DE1:1; 02779 vuint32_t:3; 02780 vuint32_t DIV1:4; 02781 vuint32_t DE2:1; 02782 vuint32_t:3; 02783 vuint32_t DIV2:4; 02784 vuint32_t DE3:1; 02785 vuint32_t:3; 02786 vuint32_t DIV3:4; 02787 } B; 02788 } AC13DC; /* Aux Clock 13 Divider Configuration 0->3 */ 02789 02790 union { 02791 vuint32_t R; 02792 struct { 02793 vuint32_t:4; 02794 vuint32_t SELCTL:4; 02795 vuint32_t:24; 02796 } B; 02797 } AC14SC; /* Aux Clock 14 Select Control */ 02798 02799 union { 02800 vuint32_t R; 02801 struct { 02802 vuint32_t DE0:1; 02803 vuint32_t:3; 02804 vuint32_t DIV0:4; 02805 vuint32_t DE1:1; 02806 vuint32_t:3; 02807 vuint32_t DIV1:4; 02808 vuint32_t DE2:1; 02809 vuint32_t:3; 02810 vuint32_t DIV2:4; 02811 vuint32_t DE3:1; 02812 vuint32_t:3; 02813 vuint32_t DIV3:4; 02814 } B; 02815 } AC14DC; /* Aux Clock 14 Divider Configuration 0->3 */ 02816 02817 union { 02818 vuint32_t R; 02819 struct { 02820 vuint32_t:4; 02821 vuint32_t SELCTL:4; 02822 vuint32_t:24; 02823 } B; 02824 } AC15SC; /* Aux Clock 15 Select Control */ 02825 02826 union { 02827 vuint32_t R; 02828 struct { 02829 vuint32_t DE0:1; 02830 vuint32_t:3; 02831 vuint32_t DIV0:4; 02832 vuint32_t DE1:1; 02833 vuint32_t:3; 02834 vuint32_t DIV1:4; 02835 vuint32_t DE2:1; 02836 vuint32_t:3; 02837 vuint32_t DIV2:4; 02838 vuint32_t DE3:1; 02839 vuint32_t:3; 02840 vuint32_t DIV3:4; 02841 } B; 02842 } AC15DC; /* Aux Clock 15 Divider Configuration 0->3 */ 02843 02844 }; /* end of CGM_tag */ 02845 /****************************************************************************/ 02846 /* MODULE : RGM */ 02847 /****************************************************************************/ 02848 struct RGM_tag { 02849 02850 union { 02851 vuint16_t R; 02852 struct { 02853 vuint16_t F_EXR:1; 02854 vuint16_t:3; 02855 vuint16_t F_CMU1_FHL:1; 02856 vuint16_t:1; 02857 vuint16_t F_PLL1:1; 02858 vuint16_t F_FLASH:1; 02859 vuint16_t F_LVD45:1; 02860 vuint16_t F_CMU0_FHL:1; 02861 vuint16_t F_CMU0_OLR:1; 02862 vuint16_t F_PLL0:1; 02863 vuint16_t F_CHKSTOP:1; 02864 vuint16_t F_SOFT:1; 02865 vuint16_t F_CORE:1; 02866 vuint16_t F_JTAG:1; 02867 } B; 02868 } FES; /* Functional Event Status */ 02869 02870 union { 02871 vuint16_t R; 02872 struct { 02873 vuint16_t POR:1; 02874 vuint16_t:7; 02875 vuint16_t F_COMP:1; 02876 vuint16_t F_LVD27_IO:1; 02877 vuint16_t F_LVD27_FLASH:1; 02878 vuint16_t F_LVD27_VREG:1; 02879 vuint16_t F_LVD27:1; 02880 vuint16_t F_SWT:1; 02881 vuint16_t F_LVD12_PD1:1; 02882 vuint16_t F_LVD12_PD0:1; 02883 } B; 02884 } DES; /* Destructive Event Status */ 02885 02886 union { 02887 vuint16_t R; 02888 struct { 02889 vuint16_t D_EXR:1; 02890 vuint16_t:3; 02891 vuint16_t D_CMU1_FHL:1; 02892 vuint16_t:1; 02893 vuint16_t D_PLL1:1; 02894 vuint16_t D_FLASH:1; 02895 vuint16_t D_LVD45:1; 02896 vuint16_t D_CMU0_FHL:1; 02897 vuint16_t D_CMU0_OLR:1; 02898 vuint16_t D_PLL0:1; 02899 vuint16_t D_CHKSTOP:1; 02900 vuint16_t D_SOFT:1; 02901 vuint16_t D_CORE:1; 02902 vuint16_t D_JTAG:1; 02903 } B; 02904 } FERD; /* Functional Event Reset Disable */ 02905 02906 union { 02907 vuint16_t R; 02908 struct { 02909 vuint16_t:8; 02910 vuint16_t D_COMP:1; 02911 vuint16_t D_LVD27_IO:1; 02912 vuint16_t D_LVD27_FLASH:1; 02913 vuint16_t D_LVD27_VREG:1; 02914 vuint16_t D_LVD27:1; 02915 vuint16_t D_SWT:1; 02916 vuint16_t D_LVD12_PD1:1; 02917 vuint16_t D_LVD12_PD0:1; 02918 } B; 02919 } DERD; /* Destructive Event Reset Disable */ 02920 02921 int16_t RGM_reserved0[4]; 02922 02923 union { 02924 vuint16_t R; 02925 struct { 02926 vuint16_t:4; 02927 vuint16_t AR_CMU1_FHL:1; 02928 vuint16_t:1; 02929 vuint16_t AR_PLL1:1; 02930 vuint16_t AR_FLASH:1; 02931 vuint16_t AR_LVD45:1; 02932 vuint16_t AR_CMU0_FHL:1; 02933 vuint16_t AR_CMU0_OLR:1; 02934 vuint16_t AR_PLL0:1; 02935 vuint16_t AR_CHKSTOP:1; 02936 vuint16_t AR_SOFT:1; 02937 vuint16_t AR_CORE:1; 02938 vuint16_t AR_JTAG:1; 02939 } B; 02940 } FEAR; /* Functional Event Alternate Request */ 02941 02942 union { 02943 vuint16_t R; 02944 struct { 02945 vuint16_t:8; 02946 vuint16_t AR_COMP:1; 02947 vuint16_t AR_LVD27_IO:1; 02948 vuint16_t AR_LVD27_FLASH:1; 02949 vuint16_t AR_LVD27_VREG:1; 02950 vuint16_t AR_LVD27:1; 02951 vuint16_t AR_SWT:1; 02952 vuint16_t AR_LVD12_PD1:1; 02953 vuint16_t AR_LVD12_PD0:1; 02954 } B; 02955 } DEAR; /* Destructive Event Alternate Request */ 02956 02957 int16_t RGM_reserved1[2]; 02958 02959 union { 02960 vuint16_t R; 02961 struct { 02962 vuint16_t:4; 02963 vuint16_t SS_CMU1_FHL:1; 02964 vuint16_t:1; 02965 vuint16_t SS_PLL1:1; 02966 vuint16_t SS_FLASH:1; 02967 vuint16_t SS_LVD45:1; 02968 vuint16_t SS_CMU0_FHL:1; 02969 vuint16_t SS_CMU0_OLR:1; 02970 vuint16_t SS_PLL0:1; 02971 vuint16_t SS_CHKSTOP:1; 02972 vuint16_t SS_SOFT:1; 02973 vuint16_t SS_CORE:1; 02974 vuint16_t SS_JTAG:1; 02975 } B; 02976 } FESS; /* Functional Event Short Sequence */ 02977 02978 union { 02979 vuint16_t R; 02980 struct { 02981 vuint16_t:8; 02982 vuint16_t BOOT:1; 02983 vuint16_t:4; 02984 vuint16_t DRUND_FLA:1; 02985 vuint16_t:1; 02986 vuint16_t DRUNC_FLA:1; 02987 } B; 02988 } STDBY; /* STANDBY reset sequence */ 02989 02990 union { 02991 vuint16_t R; 02992 struct { 02993 vuint16_t:4; 02994 vuint16_t BE_CMU1_FHL:1; 02995 vuint16_t:1; 02996 vuint16_t BE_PLL1:1; 02997 vuint16_t BE_FLASH:1; 02998 vuint16_t BE_LVD45:1; 02999 vuint16_t BE_CMU0_FHL:1; 03000 vuint16_t BE_CMU0_OLR:1; 03001 vuint16_t BE_PLL0:1; 03002 vuint16_t BE_CHKSTOP:1; 03003 vuint16_t BE_SOFT:1; 03004 vuint16_t BE_CORE:1; 03005 vuint16_t BE_JTAG:1; 03006 } B; 03007 } FBRE; /* Functional Bidirectional Reset Enable */ 03008 03009 }; /* end of RGM_tag */ 03010 /****************************************************************************/ 03011 /* MODULE : PCU */ 03012 /****************************************************************************/ 03013 struct PCU_tag { 03014 03015 union { 03016 vuint32_t R; 03017 struct { 03018 vuint32_t:18; 03019 vuint32_t STBY0:1; 03020 vuint32_t:2; 03021 vuint32_t STOP0:1; 03022 vuint32_t:1; 03023 vuint32_t HALT0:1; 03024 vuint32_t RUN3:1; 03025 vuint32_t RUN2:1; 03026 vuint32_t RUN1:1; 03027 vuint32_t RUN0:1; 03028 vuint32_t DRUN:1; 03029 vuint32_t SAFE:1; 03030 vuint32_t TEST:1; 03031 vuint32_t RST:1; 03032 } B; 03033 } PCONF[16]; /* Power domain 0-15 configuration register */ 03034 03035 union { 03036 vuint32_t R; 03037 struct { 03038 vuint32_t:16; 03039 vuint32_t PD15:1; 03040 vuint32_t PD14:1; 03041 vuint32_t PD13:1; 03042 vuint32_t PD12:1; 03043 vuint32_t PD11:1; 03044 vuint32_t PD10:1; 03045 vuint32_t PD9:1; 03046 vuint32_t PD8:1; 03047 vuint32_t PD7:1; 03048 vuint32_t PD6:1; 03049 vuint32_t PD5:1; 03050 vuint32_t PD4:1; 03051 vuint32_t PD3:1; 03052 vuint32_t PD2:1; 03053 vuint32_t PD1:1; 03054 vuint32_t PD0:1; 03055 } B; 03056 } PSTAT; /* Power Domain Status Register */ 03057 03058 int32_t PCU_reserved0[15]; /* {0x0080-0x0044}/0x4 = 0xF */ 03059 03060 union { 03061 vuint32_t R; 03062 struct { 03063 vuint32_t:15; 03064 vuint32_t MASK_LVDHV5:1; 03065 } B; 03066 } VCTL; /* Voltage Regulator Control Register */ 03067 03068 }; /* end of PCU_tag */ 03069 /****************************************************************************/ 03070 /* MODULE : FLEXPWM */ 03071 /****************************************************************************/ 03072 struct FLEXPWM_SUB_tag { 03073 03074 union { 03075 vuint16_t R; 03076 } CNT; /* Counter Register */ 03077 03078 union { 03079 vuint16_t R; 03080 } INIT; /* Initial Count Register */ 03081 03082 union { 03083 vuint16_t R; 03084 struct { 03085 vuint16_t DBGEN:1; 03086 vuint16_t WAITEN:1; 03087 vuint16_t INDEP:1; 03088 vuint16_t PWMA_INIT:1; 03089 vuint16_t PWMB_INIT:1; 03090 vuint16_t PWMX_INIT:1; 03091 vuint16_t INIT_SEL:2; 03092 vuint16_t FRCEN:1; 03093 vuint16_t FORCE:1; 03094 vuint16_t FORCE_SEL:3; 03095 vuint16_t RELOAD_SEL:1; 03096 vuint16_t CLK_SEL:2; 03097 } B; 03098 } CTRL2; /* Control 2 Register */ 03099 03100 union { 03101 vuint16_t R; 03102 struct { 03103 vuint16_t LDFQ:4; 03104 vuint16_t HALF:1; 03105 vuint16_t FULL:1; 03106 vuint16_t DT:2; 03107 vuint16_t:1; 03108 vuint16_t PRSC:3; 03109 vuint16_t:3; 03110 vuint16_t DBLEN:1; 03111 } B; 03112 } CTRL; /* Control Register */ 03113 03114 union { 03115 vuint16_t R; 03116 } VAL[6]; /* Value Register 0->5 */ 03117 03118 union { 03119 vuint16_t R; 03120 struct { 03121 vuint16_t FRACAEN:1; 03122 vuint16_t:10; 03123 vuint16_t FRACADLY:5; 03124 } B; 03125 } FRACA; /* Fractional Delay Register A */ 03126 03127 union { 03128 vuint16_t R; 03129 struct { 03130 vuint16_t FRACBEN:1; 03131 vuint16_t:10; 03132 vuint16_t FRACBDLY:5; 03133 } B; 03134 } FRACB; /* Fractional Delay Register B */ 03135 03136 union { 03137 vuint16_t R; 03138 struct { 03139 vuint16_t PWMA_IN:1; 03140 vuint16_t PWMB_IN:1; 03141 vuint16_t PWMX_IN:1; 03142 vuint16_t:2; 03143 vuint16_t POLA:1; 03144 vuint16_t POLB:1; 03145 vuint16_t POLX:1; 03146 vuint16_t:2; 03147 vuint16_t PWMAFS:2; 03148 vuint16_t PWMBFS:2; 03149 vuint16_t PWMXFS:2; 03150 } B; 03151 } OCTRL; /* Output Control Register */ 03152 03153 union { 03154 vuint16_t R; 03155 struct { 03156 vuint16_t:1; 03157 vuint16_t RUF:1; 03158 vuint16_t REF:1; 03159 vuint16_t RF:1; 03160 vuint16_t CFA1:1; 03161 vuint16_t CFA0:1; 03162 vuint16_t CFB1:1; 03163 vuint16_t CFB0:1; 03164 vuint16_t CFX1:1; 03165 vuint16_t CFX0:1; 03166 vuint16_t CMPF:6; 03167 } B; 03168 } STS; /* Status Register */ 03169 03170 union { 03171 vuint16_t R; 03172 struct { 03173 vuint16_t:2; 03174 vuint16_t REIE:1; 03175 vuint16_t RIE:1; 03176 vuint16_t:4; 03177 vuint16_t CX1IE:1; 03178 vuint16_t CX0IE:1; 03179 vuint16_t CMPIE:6; 03180 } B; 03181 } INTEN; /* Interrupt Enable Register */ 03182 03183 union { 03184 vuint16_t R; 03185 struct { 03186 vuint16_t:6; 03187 vuint16_t VALDE:1; 03188 vuint16_t FAND:1; 03189 vuint16_t CAPTDE:2; 03190 vuint16_t CA1DE:1; 03191 vuint16_t CA0DE:1; 03192 vuint16_t CB1DE:1; 03193 vuint16_t CB0DE:1; 03194 vuint16_t CX1DE:1; 03195 vuint16_t CX0DE:1; 03196 } B; 03197 } DMAEN; /* DMA Enable Register */ 03198 03199 union { 03200 vuint16_t R; 03201 struct { 03202 vuint16_t:10; 03203 vuint16_t OUT_TRIG_EN:6; 03204 } B; 03205 } TCTRL; /* Output Trigger Control Register */ 03206 03207 union { 03208 vuint16_t R; 03209 struct { 03210 vuint16_t:4; 03211 vuint16_t DISX:4; 03212 vuint16_t DISB:4; 03213 vuint16_t DISA:4; 03214 } B; 03215 } DISMAP; /* Fault Disable Mapping Register */ 03216 03217 union { 03218 vuint16_t R; 03219 struct { 03220 vuint16_t:5; 03221 vuint16_t DTCNT0:11; 03222 } B; 03223 } DTCNT0; /* Deadtime Count Register 0 */ 03224 03225 union { 03226 vuint16_t R; 03227 struct { 03228 vuint16_t:5; 03229 vuint16_t DTCNT1:11; 03230 } B; 03231 } DTCNT1; /* Deadtime Count Register 1 */ 03232 03233 union { 03234 vuint16_t R; 03235 struct { 03236 vuint16_t CA1CNT:3; 03237 vuint16_t CA0CNT:3; 03238 vuint16_t CFAWM:2; 03239 vuint16_t EDGCNTAEN:1; 03240 vuint16_t INPSELA:1; 03241 vuint16_t EDGA1:2; 03242 vuint16_t EDGA0:2; 03243 vuint16_t ONESHOTA:1; 03244 vuint16_t ARMA:1; 03245 } B; 03246 } CAPTCTRLA; /* Capture Control Register A */ 03247 03248 union { 03249 vuint16_t R; 03250 struct { 03251 vuint16_t EDGCNTA:8; 03252 vuint16_t EDGCMPA:8; 03253 } B; 03254 } CAPTCOMPA; /* Capture Compare Register A */ 03255 03256 union { 03257 vuint16_t R; 03258 struct { 03259 vuint16_t CB1CNT:3; 03260 vuint16_t CB0CNT:3; 03261 vuint16_t CFBWM:2; 03262 vuint16_t EDGCNTBEN:1; 03263 vuint16_t INPSELB:1; 03264 vuint16_t EDGB1:2; 03265 vuint16_t EDGB0:2; 03266 vuint16_t ONESHOTB:1; 03267 vuint16_t ARMB:1; 03268 } B; 03269 } CAPTCTRLB; /* Capture Control Register B */ 03270 03271 union { 03272 vuint16_t R; 03273 struct { 03274 vuint16_t EDGCNTB:8; 03275 vuint16_t EDGCMPB:8; 03276 } B; 03277 } CAPTCOMPB; /* Capture Compare Register B */ 03278 03279 union { 03280 vuint16_t R; 03281 struct { 03282 vuint16_t CX1CNT:3; 03283 vuint16_t CX0CNT:3; 03284 vuint16_t CFXWM:2; 03285 vuint16_t EDGCNTX_EN:1; 03286 vuint16_t INP_SELX:1; 03287 vuint16_t EDGX1:2; 03288 vuint16_t EDGX0:2; 03289 vuint16_t ONESHOTX:1; 03290 vuint16_t ARMX:1; 03291 } B; 03292 } CAPTCTRLX; /* Capture Control Register B */ 03293 03294 union { 03295 vuint16_t R; 03296 struct { 03297 vuint16_t EDGCNTX:8; 03298 vuint16_t EDGCMPX:8; 03299 } B; 03300 } CAPTCOMPX; /* Capture Compare Register X */ 03301 03302 union { 03303 vuint16_t R; 03304 struct { 03305 vuint16_t CAPTVAL0:16; 03306 } B; 03307 } CVAL0; /* Capture Value 0 Register */ 03308 03309 union { 03310 vuint16_t R; 03311 struct { 03312 vuint16_t:12; 03313 vuint16_t CVAL0CYC:4; 03314 } B; 03315 } CVAL0C; /* Capture Value 0 Cycle Register */ 03316 03317 union { 03318 vuint16_t R; 03319 struct { 03320 vuint16_t CAPTVAL1:16; 03321 } B; 03322 } CVAL1; /* Capture Value 1 Register */ 03323 03324 union { 03325 vuint16_t R; 03326 struct { 03327 vuint16_t:12; 03328 vuint16_t CVAL1CYC:4; 03329 } B; 03330 } CVAL1C; /* Capture Value 1 Cycle Register */ 03331 03332 union { 03333 vuint16_t R; 03334 struct { 03335 vuint16_t CAPTVAL2:16; 03336 } B; 03337 } CVAL2; /* Capture Value 2 Register */ 03338 03339 union { 03340 vuint16_t R; 03341 struct { 03342 vuint16_t:12; 03343 vuint16_t CVAL2CYC:4; 03344 } B; 03345 } CVAL2C; /* Capture Value 2 Cycle Register */ 03346 03347 union { 03348 vuint16_t R; 03349 struct { 03350 vuint16_t CAPTVAL3:16; 03351 } B; 03352 } CVAL3; /* Capture Value 3 Register */ 03353 03354 union { 03355 vuint16_t R; 03356 struct { 03357 vuint16_t:12; 03358 vuint16_t CVAL3CYC:4; 03359 } B; 03360 } CVAL3C; /* Capture Value 3 Cycle Register */ 03361 03362 union { 03363 vuint16_t R; 03364 struct { 03365 vuint16_t CAPTVAL4:16; 03366 } B; 03367 } CVAL4; /* Capture Value 4 Register */ 03368 03369 union { 03370 vuint16_t R; 03371 struct { 03372 vuint16_t:12; 03373 vuint16_t CVAL4CYC:4; 03374 } B; 03375 } CVAL4C; /* Capture Value 4 Cycle Register */ 03376 03377 union { 03378 vuint16_t R; 03379 struct { 03380 vuint16_t CAPTVAL5:16; 03381 } B; 03382 } CVAL5; /* Capture Value 5 Register */ 03383 03384 union { 03385 vuint16_t R; 03386 struct { 03387 vuint16_t:12; 03388 vuint16_t CVAL5CYC:4; 03389 } B; 03390 } CVAL5C; /* Capture Value 5 Cycle Register */ 03391 03392 uint32_t FLEXPWM_SUB_reserved0; /* (0x04A - 0x050)/4 = 0x01 */ 03393 03394 }; /* end of FLEXPWM_SUB_tag */ 03395 03396 struct FLEXPWM_tag { 03397 03398 /* eg. FLEXPWM.SUB<[x]>.CNT.R {x = 0->3} */ 03399 struct FLEXPWM_SUB_tag SUB[4]; 03400 03401 union { 03402 vuint16_t R; 03403 struct { 03404 vuint16_t:4; 03405 vuint16_t PWMA_EN:4; 03406 vuint16_t PWMB_EN:4; 03407 vuint16_t PWMX_EN:4; 03408 } B; 03409 } OUTEN; /* Output Enable Register */ 03410 03411 union { 03412 vuint16_t R; 03413 struct { 03414 vuint16_t:4; 03415 vuint16_t MASKA:4; 03416 vuint16_t MASKB:4; 03417 vuint16_t MASKX:4; 03418 } B; 03419 } MASK; /* Output Mask Register */ 03420 03421 union { 03422 vuint16_t R; 03423 struct { 03424 vuint16_t:8; 03425 vuint16_t OUTA_3:1; 03426 vuint16_t OUTB_3:1; 03427 vuint16_t OUTA_2:1; 03428 vuint16_t OUTB_2:1; 03429 vuint16_t OUTA_1:1; 03430 vuint16_t OUTB_1:1; 03431 vuint16_t OUTA_0:1; 03432 vuint16_t OUTB_0:1; 03433 } B; 03434 } SWCOUT; /* Software Controlled Output Register */ 03435 03436 union { 03437 vuint16_t R; 03438 struct { 03439 vuint16_t SELA_3:2; 03440 vuint16_t SELB_3:2; 03441 vuint16_t SELA_2:2; 03442 vuint16_t SELB_2:2; 03443 vuint16_t SELA_1:2; 03444 vuint16_t SELB_1:2; 03445 vuint16_t SELA_0:2; 03446 vuint16_t SELB_0:2; 03447 } B; 03448 } DTSRCSEL; /* Deadtime Source Select Register */ 03449 03450 union { 03451 vuint16_t R; 03452 struct { 03453 vuint16_t IPOL:4; 03454 vuint16_t RUN:4; 03455 vuint16_t CLDOK:4; 03456 vuint16_t LDOK:4; 03457 } B; 03458 } MCTRL; /* Master Control Register */ 03459 03460 int16_t FLEXPWM_reserved1; 03461 03462 union { 03463 vuint16_t R; 03464 struct { 03465 vuint16_t FLVL:4; 03466 vuint16_t FAUTO:4; 03467 vuint16_t FSAFE:4; 03468 vuint16_t FIE:4; 03469 } B; 03470 } FCTRL; /* Fault Control Register */ 03471 03472 union { 03473 vuint16_t R; 03474 struct { 03475 vuint16_t:3; 03476 vuint16_t FTEST:1; 03477 vuint16_t FFPIN:4; 03478 vuint16_t:4; 03479 vuint16_t FFLAG:4; 03480 } B; 03481 } FSTS; /* Fault Status Register */ 03482 03483 union { 03484 vuint16_t R; 03485 struct { 03486 vuint16_t:5; 03487 vuint16_t FILT_CNT:3; 03488 vuint16_t FILT_PER:8; 03489 } B; 03490 } FFILT; /* Fault FilterRegister */ 03491 03492 }; /* end of FLEXPWM_tag */ 03493 /****************************************************************************/ 03494 /* MODULE : ETIMER */ 03495 /****************************************************************************/ 03496 struct ETIMER_CHANNEL_tag { 03497 03498 union { 03499 vuint16_t R; 03500 struct { 03501 vuint16_t COMP1:16; 03502 } B; 03503 } COMP1; /* Compare Register 1 */ 03504 03505 union { 03506 vuint16_t R; 03507 struct { 03508 vuint16_t COMP2:16; 03509 } B; 03510 } COMP2; /* Compare Register 2 */ 03511 03512 union { 03513 vuint16_t R; 03514 struct { 03515 vuint16_t CAPT1:16; 03516 } B; 03517 } CAPT1; /* Capture Register 1 */ 03518 03519 union { 03520 vuint16_t R; 03521 struct { 03522 vuint16_t CAPT2:16; 03523 } B; 03524 } CAPT2; /* Capture Register 2 */ 03525 03526 union { 03527 vuint16_t R; 03528 struct { 03529 vuint16_t LOAD:16; 03530 } B; 03531 } LOAD; /* Load Register */ 03532 03533 union { 03534 vuint16_t R; 03535 struct { 03536 vuint16_t HOLD:16; 03537 } B; 03538 } HOLD; /* Hold Register */ 03539 03540 union { 03541 vuint16_t R; 03542 struct { 03543 vuint16_t CNTR:16; 03544 } B; 03545 } CNTR; /* Counter Register */ 03546 03547 union { 03548 vuint16_t R; 03549 struct { 03550 vuint16_t CNTMODE:3; 03551 vuint16_t PRISRC:5; 03552 vuint16_t ONCE:1; 03553 vuint16_t LENGTH:1; 03554 vuint16_t DIR:1; 03555 vuint16_t SECSRC:5; 03556 } B; 03557 } CTRL; /* Control Register */ 03558 03559 union { 03560 vuint16_t R; 03561 struct { 03562 vuint16_t OEN:1; 03563 vuint16_t RDNT:1; 03564 vuint16_t INPUT:1; 03565 vuint16_t VAL:1; 03566 vuint16_t FORCE:1; 03567 vuint16_t COFRC:1; 03568 vuint16_t COINIT:2; 03569 vuint16_t SIPS:1; 03570 vuint16_t PIPS:1; 03571 vuint16_t OPS:1; 03572 vuint16_t MSTR:1; 03573 vuint16_t OUTMODE:4; 03574 } B; 03575 } CTRL2; /* Control Register 2 */ 03576 03577 union { 03578 vuint16_t R; 03579 struct { 03580 vuint16_t STPEN:1; 03581 vuint16_t ROC:2; 03582 vuint16_t FMODE:1; 03583 vuint16_t FDIS:4; 03584 vuint16_t C2FCNT:3; 03585 vuint16_t C1FCNT:3; 03586 vuint16_t DBGEN:2; 03587 } B; 03588 } CTRL3; /* Control Register 3 */ 03589 03590 union { 03591 vuint16_t R; 03592 struct { 03593 vuint16_t:6; 03594 vuint16_t WDF:1; 03595 vuint16_t RCF:1; 03596 vuint16_t ICF2:1; 03597 vuint16_t ICF1:1; 03598 vuint16_t IEHF:1; 03599 vuint16_t IELF:1; 03600 vuint16_t TOF:1; 03601 vuint16_t TCF2:1; 03602 vuint16_t TCF1:1; 03603 vuint16_t TCF:1; 03604 } B; 03605 } STS; /* Status Register */ 03606 03607 union { 03608 vuint16_t R; 03609 struct { 03610 vuint16_t ICF2DE:1; 03611 vuint16_t ICF1DE:1; 03612 vuint16_t CMPLD2DE:1; 03613 vuint16_t CMPLD1DE:1; 03614 vuint16_t:2; 03615 vuint16_t WDFIE:1; 03616 vuint16_t RCFIE:1; 03617 vuint16_t ICF2IE:1; 03618 vuint16_t ICF1IE:1; 03619 vuint16_t IEHFIE:1; 03620 vuint16_t IELFIE:1; 03621 vuint16_t TOFIE:1; 03622 vuint16_t TCF2IE:1; 03623 vuint16_t TCF1IE:1; 03624 vuint16_t TCFIE:1; 03625 } B; 03626 } INTDMA; /* Interrupt and DMA Register */ 03627 03628 union { 03629 vuint16_t R; 03630 struct { 03631 vuint16_t CMPLD1:16; 03632 } B; 03633 } CMPLD1; /* Compare Load Register 1 */ 03634 03635 union { 03636 vuint16_t R; 03637 struct { 03638 vuint16_t CMPLD2:16; 03639 } B; 03640 } CMPLD2; /* Compare Load Register 2 */ 03641 03642 union { 03643 vuint16_t R; 03644 struct { 03645 vuint16_t CLC2:3; 03646 vuint16_t CLC1:3; 03647 vuint16_t CMPMODE:2; 03648 vuint16_t CPT2MODE:2; 03649 vuint16_t CPT1MODE:2; 03650 vuint16_t CFWM:2; 03651 vuint16_t ONESHOT:1; 03652 vuint16_t ARM:1; 03653 } B; 03654 } CCCTRL; /* Compare and Capture Control Register */ 03655 03656 union { 03657 vuint16_t R; 03658 struct { 03659 vuint16_t:5; 03660 vuint16_t FILTCNT:3; 03661 vuint16_t FILTPER:8; 03662 } B; 03663 } FILT; /* Input Filter Register */ 03664 03665 }; /* end of ETIMER_CHANNEL_tag */ 03666 03667 struct ETIMER_tag { 03668 03669 struct ETIMER_CHANNEL_tag CHANNEL[8]; 03670 03671 union { 03672 vuint16_t R; 03673 struct { 03674 vuint16_t WDTOL:16; 03675 } B; 03676 } WDTOL; /* Watchdog Time-out Low Register */ 03677 03678 union { 03679 vuint16_t R; 03680 struct { 03681 vuint16_t WDTOH:16; 03682 } B; 03683 } WDTOH; /* Watchdog Time-out High Register */ 03684 03685 union { 03686 vuint16_t R; 03687 struct { 03688 vuint16_t:3; 03689 vuint16_t FTEST:1; 03690 vuint16_t FIE:4; 03691 vuint16_t:4; 03692 vuint16_t FLVL:4; 03693 } B; 03694 } FCTRL; /* Fault Control Register */ 03695 03696 union { 03697 vuint16_t R; 03698 struct { 03699 vuint16_t:4; 03700 vuint16_t FFPIN:4; 03701 vuint16_t:4; 03702 vuint16_t FFLAG:4; 03703 } B; 03704 } FSTS; /* Fault Status Register */ 03705 03706 union { 03707 vuint16_t R; 03708 struct { 03709 vuint16_t:5; 03710 vuint16_t FFILTCNT:3; 03711 vuint16_t FFILTPER:8; 03712 } B; 03713 } FFILT; /* Fault Filter Register */ 03714 03715 int16_t ETIMER_reserved1; 03716 03717 union { 03718 vuint16_t R; 03719 struct { 03720 vuint16_t:8; 03721 vuint16_t ENBL:8; 03722 } B; 03723 } ENBL; /* Channel Enable Register */ 03724 03725 int16_t ETIMER_reserved2; 03726 03727 union { 03728 vuint16_t R; 03729 struct { 03730 vuint16_t:11; 03731 vuint16_t DREQ:5; 03732 } B; 03733 } DREQ[4]; /* DMA Request 0->3 Select Register */ 03734 03735 }; /* end of ETIMER_tag */ 03736 /****************************************************************************/ 03737 /* MODULE : DCU */ 03738 /****************************************************************************/ 03739 struct DCU_LAYER_tag { 03740 03741 union { 03742 vuint32_t R; 03743 struct { 03744 vuint32_t:6; 03745 vuint32_t HEIGHT:10; 03746 vuint32_t:8; 03747 vuint32_t WIDTH:8; 03748 } B; 03749 } CTRLDESCL1; /* LAYER[X].CTRLDESCL1 */ 03750 03751 union { 03752 vuint32_t R; 03753 struct { 03754 vuint32_t:6; 03755 vuint32_t POSY:10; 03756 vuint32_t:8; 03757 vuint32_t POSX:8; 03758 } B; 03759 } CTRLDESCL2; /* LAYER[X].CTRLDESCL2 */ 03760 03761 union { 03762 vuint32_t R; 03763 struct { 03764 vuint32_t ADDR:32; 03765 } B; 03766 } CTRLDESCL3; /* LAYER[X].CTRLDESCL3 */ 03767 03768 union { 03769 vuint32_t R; 03770 struct { 03771 vuint32_t EN:1; 03772 vuint32_t TILEEN:1; 03773 vuint32_t DATASEL:1; 03774 vuint32_t:1; 03775 vuint32_t TRANS:8; 03776 vuint32_t BPP:4; 03777 vuint32_t SAFETYEN:1; 03778 vuint32_t:2; 03779 vuint32_t LUOFFS:10; 03780 vuint32_t BB:1; 03781 vuint32_t AB:2; 03782 } B; 03783 } CTRLDESCL4; /* LAYER[X].CTRLDESCL4 */ 03784 03785 union { 03786 vuint32_t R; 03787 struct { 03788 vuint32_t:8; 03789 vuint32_t CKMAXR:8; 03790 vuint32_t CKMAXG:8; 03791 vuint32_t CKMAXB:8; 03792 } B; 03793 } CTRLDESCL5; /* LAYER[X].CTRLDESCL5 */ 03794 03795 union { 03796 vuint32_t R; 03797 struct { 03798 vuint32_t:8; 03799 vuint32_t CKMINR:8; 03800 vuint32_t CKMING:8; 03801 vuint32_t CKMINB:8; 03802 } B; 03803 } CTRLDESCL6; /* LAYER[X].CTRLDESCL6 */ 03804 03805 union { 03806 vuint32_t R; 03807 struct { 03808 vuint32_t:4; 03809 vuint32_t TILEVERSIZE:12; 03810 vuint32_t:8; 03811 vuint32_t TILEHORSIZE:8; 03812 } B; 03813 } CTRLDESCL7; /* LAYER[X].CTRLDESCL7 */ 03814 03815 }; /* end of DCU_LAYER_tag */ 03816 03817 struct DCU_tag { 03818 03819 /* DCU.LAYER<[x]>.CTRLDESCL<y>.R {x = 0-15, y = 1-7} */ 03820 /* eg DCU.LAYER[0].CTRLDESCL1.R = 0; */ 03821 /* DCU.LAYER[0].CTRLDESCL1.B.HEIGHT = 0; */ 03822 struct DCU_LAYER_tag LAYER[16]; 03823 03824 union { 03825 vuint32_t R; 03826 struct { 03827 vuint32_t:8; 03828 vuint32_t HEIGHT:8; 03829 vuint32_t:8; 03830 vuint32_t WIDTH:8; 03831 } B; 03832 } CTRLDESCCURSOR1; /* Control Descriptor Cursor_1 Register */ 03833 03834 union { 03835 vuint32_t R; 03836 struct { 03837 vuint32_t:6; 03838 vuint32_t POSY:10; 03839 vuint32_t:6; 03840 vuint32_t POSX:10; 03841 } B; 03842 } CTRLDESCCURSOR2; /* Control Descriptor Cursor_2 Register */ 03843 03844 union { 03845 vuint32_t R; 03846 struct { 03847 vuint32_t CUREN:1; 03848 vuint32_t:7; 03849 vuint32_t CURSORDEFAULTCOLOR:24; 03850 } B; 03851 } CTRLDESCCURSOR3; /* Control Descriptor Cursor_3 Register */ 03852 03853 union { 03854 vuint32_t R; 03855 struct { 03856 vuint32_t:23; 03857 vuint32_t ENBLINK:1; 03858 vuint32_t HWCBLINK:8; 03859 } B; 03860 } CTRLDESCCURSOR4; /* Control Descriptor Cursor_4 Register */ 03861 03862 union { 03863 vuint32_t R; 03864 struct { 03865 vuint32_t DCUSWRST:1; 03866 vuint32_t:11; 03867 vuint32_t PDISYNCLOCK:4; 03868 vuint32_t:2; 03869 vuint32_t PDIEN:1; 03870 vuint32_t PDIBYTEREV:1; 03871 vuint32_t PDIDEMODE:1; 03872 vuint32_t PDINARROWMODE:1; 03873 vuint32_t PDI_MODE:2; 03874 vuint32_t PDISLAVEMODE:1; 03875 vuint32_t TAGEN:1; 03876 vuint32_t SIGEN:1; 03877 vuint32_t PDISYNC:1; 03878 vuint32_t TEST:1; 03879 vuint32_t ENGAMMA:1; 03880 vuint32_t DCUMODE:2; 03881 } B; 03882 } DCUMODE; /* DCU Mode Register */ 03883 03884 union { 03885 vuint32_t R; 03886 struct { 03887 vuint32_t:8; 03888 vuint32_t BGND_R:8; 03889 vuint32_t BGND_G:8; 03890 vuint32_t BGND_B:8; 03891 } B; 03892 } BGND; /* BGND Register */ 03893 03894 union { 03895 vuint32_t R; 03896 struct { 03897 vuint32_t:6; 03898 vuint32_t DELTAY:10; 03899 vuint32_t:8; 03900 vuint32_t DELTAX:8; 03901 } B; 03902 } DSPSIZE; /* DISP_SIZE Register */ 03903 03904 union { 03905 vuint32_t R; 03906 struct { 03907 vuint32_t:1; 03908 vuint32_t BPH:9; 03909 vuint32_t:2; 03910 vuint32_t PWH:9; 03911 vuint32_t:2; 03912 vuint32_t FPH:9; 03913 } B; 03914 } HSYNPARA; /* HSYNPARA Register */ 03915 03916 union { 03917 vuint32_t R; 03918 struct { 03919 vuint32_t:1; 03920 vuint32_t BPV:9; 03921 vuint32_t:2; 03922 vuint32_t PWV:9; 03923 vuint32_t:2; 03924 vuint32_t FPV:9; 03925 } B; 03926 } VSYNPARA; /* VSYNPARA Register */ 03927 03928 union { 03929 vuint32_t R; 03930 struct { 03931 vuint32_t:21; 03932 vuint32_t INVPDIDE:1; 03933 vuint32_t INVPDIHS:1; 03934 vuint32_t INVPDIVS:1; 03935 vuint32_t INVPDICLK:1; 03936 vuint32_t INVPXCK:1; 03937 vuint32_t NEG:1; 03938 vuint32_t BPVS:1; 03939 vuint32_t BPHS:1; 03940 vuint32_t INVCS:1; 03941 vuint32_t INVVS:1; 03942 vuint32_t INVHS:1; 03943 } B; 03944 } SYNPOL; /* SYNPOL Register */ 03945 03946 union { 03947 vuint32_t R; 03948 struct { 03949 vuint32_t:6; 03950 vuint32_t LSBFVS:10; 03951 vuint32_t OUTBUFHIGH:8; 03952 vuint32_t OUTBUFLOW:8; 03953 } B; 03954 } THRESHOLD; /* Threshold Register */ 03955 03956 union { 03957 vuint32_t R; 03958 struct { 03959 vuint32_t:20; 03960 vuint32_t IPMERROR:1; 03961 vuint32_t PROGEND:1; 03962 vuint32_t P2FIFOHIFLAG:1; 03963 vuint32_t P2FIFOLOFLAG:1; 03964 vuint32_t P1FIFOHIFLAG:1; 03965 vuint32_t P1FIFOLOFLAG:1; 03966 vuint32_t CRCOVERFLOW:1; 03967 vuint32_t CRCREADY:1; 03968 vuint32_t VSBLANK:1; 03969 vuint32_t LSBFVS:1; 03970 vuint32_t UNDRUN:1; 03971 vuint32_t VSYNC:1; 03972 } B; 03973 } INTSTATUS; /* Interrupt Status Register */ 03974 03975 union { 03976 vuint32_t R; 03977 struct { 03978 vuint32_t:20; 03979 vuint32_t MIPMERROR:1; 03980 vuint32_t MPROGEND:1; 03981 vuint32_t MP2FIFOHIFLAG:1; 03982 vuint32_t MP2FIFOLOFLAG:1; 03983 vuint32_t MP1FIFOHIFLAG:1; 03984 vuint32_t MP1FIFOLOFLAG:1; 03985 vuint32_t MCRCOVERFLOW:1; 03986 vuint32_t MCRCREADY:1; 03987 vuint32_t MVSBLANK:1; 03988 vuint32_t MLSBFVS:1; 03989 vuint32_t MUNDRUN:1; 03990 vuint32_t MVSYNC:1; 03991 } B; 03992 } INTMASK; /* Interrupt Mask Register */ 03993 03994 union { 03995 vuint32_t R; 03996 struct { 03997 vuint32_t:8; 03998 vuint32_t COLBAR_R:8; 03999 vuint32_t COLBAR_G:8; 04000 vuint32_t COLBAR_B:8; 04001 } B; 04002 } COLBAR[8]; /* COLBAR 1-8 Register */ 04003 04004 union { 04005 vuint32_t R; 04006 struct { 04007 vuint32_t:26; 04008 vuint32_t DIVRATIO:6; 04009 } B; 04010 } DIVRATIO; /* Clock Divider Register */ 04011 04012 union { 04013 vuint32_t R; 04014 struct { 04015 vuint32_t:6; 04016 vuint32_t SIGVERSIZE:10; 04017 vuint32_t:6; 04018 vuint32_t SIGHORSIZE:10; 04019 } B; 04020 } SIGNCALC1; 04021 04022 union { 04023 vuint32_t R; 04024 struct { 04025 vuint32_t:6; 04026 vuint32_t SIGVERSIZE:10; 04027 vuint32_t:6; 04028 vuint32_t SIGHORSIZE:10; 04029 } B; 04030 } SIGNCALC2; 04031 04032 union { 04033 vuint32_t R; 04034 struct { 04035 vuint32_t CRCVAL:32; 04036 } B; 04037 } CRCVAL; 04038 04039 union { 04040 vuint32_t R; 04041 struct { 04042 vuint32_t:22; 04043 vuint32_t PDIBLANKINGERR:1; 04044 vuint32_t PDIECCERR2:1; 04045 vuint32_t PDIECCERR1:1; 04046 vuint32_t PDILOCKLOST:1; 04047 vuint32_t PDILOCKDET:1; 04048 vuint32_t PDIVSYNCDET:1; 04049 vuint32_t PDIHSYNCDET:1; 04050 vuint32_t PDIDEDET:1; 04051 vuint32_t PDICLKLOST:1; 04052 vuint32_t PDICLKDET:1; 04053 } B; 04054 } PDISTATUS; /* PDI status Register */ 04055 04056 union { 04057 vuint32_t R; 04058 struct { 04059 vuint32_t:22; 04060 vuint32_t PDIBLANKINGERR:1; 04061 vuint32_t PDIECCERR2:1; 04062 vuint32_t PDIECCERR1:1; 04063 vuint32_t PDILOCKLOST:1; 04064 vuint32_t PDILOCKDET:1; 04065 vuint32_t PDIVSYNCDET:1; 04066 vuint32_t PDIHSYNCDET:1; 04067 vuint32_t PDIDEDET:1; 04068 vuint32_t PDICLKLOST:1; 04069 vuint32_t PDICLKDET:1; 04070 } B; 04071 } MASKPDISTATUS; /* PDI Status Mask Register */ 04072 04073 union { 04074 vuint32_t R; 04075 struct { 04076 vuint32_t:13; 04077 vuint32_t HWCERR:1; 04078 vuint32_t SIGERR:1; 04079 vuint32_t DISPERR:1; 04080 vuint32_t LPARERR:16; 04081 } B; 04082 } PARRERRSTATUS; 04083 04084 union { 04085 vuint32_t R; 04086 struct { 04087 vuint32_t:13; 04088 vuint32_t MHWCERR:1; 04089 vuint32_t MSIGERR:1; 04090 vuint32_t MDISPERR:1; 04091 vuint32_t MLPARERR:16; 04092 } B; 04093 } MASKPARRERRSTATUS; 04094 04095 union { 04096 vuint32_t R; 04097 struct { 04098 vuint32_t INPBUFP2HI:8; 04099 vuint32_t INPBUFP2LO:8; 04100 vuint32_t INPBUFP1HI:8; 04101 vuint32_t INPBUFP1LO:8; 04102 } B; 04103 } THRESHOLDINP; /* Threshold Input Buffer Register */ 04104 04105 vuint32_t DCU_reserved1[0x072]; /* Unused from end of registers */ 04106 04107 vuint32_t CURSOR[0x0100]; /* Hardware Cursor = 256 * 32bit */ 04108 04109 vuint32_t DCU_reserved2[0x200]; /* Unused = 512 * 32bit */ 04110 04111 vuint32_t CLUT[0x0400]; /* CLUT-Pallete memory = 1k * 32bit */ 04112 04113 vuint32_t TILE[0x0400]; /* Tile memory = 1k * 32bit */ 04114 04115 vuint32_t GAMMARED[0x100]; /* Gamma red table = 256 * 32bit */ 04116 04117 vuint32_t GAMMAGREEN[0x100]; /* Gamma green table = 256 * 32bit */ 04118 04119 vuint32_t GAMMABLUE[0x100]; /* Gamma blue table = 256 * 32bit */ 04120 04121 }; /* end of DCU_tag */ 04122 /****************************************************************************/ 04123 /* MODULE : CTUL */ 04124 /****************************************************************************/ 04125 struct CTUL_tag { 04126 union { 04127 vuint32_t R; 04128 struct { 04129 vuint32_t:16; 04130 vuint32_t PRESC_CONF:4; 04131 vuint32_t:4; 04132 vuint32_t TRGIEN:1; 04133 vuint32_t TRGI:1; 04134 vuint32_t:2; 04135 vuint32_t CNT3_EN:1; 04136 vuint32_t CNT2_EN:1; 04137 vuint32_t CNT1_EN:1; 04138 vuint32_t CNT0_EN:1; 04139 } B; 04140 } CSR; /* Control Status Register */ 04141 04142 union { 04143 vuint32_t R; 04144 struct { 04145 vuint32_t:23; 04146 vuint32_t SV:9; 04147 } B; 04148 } SVR[7]; /* Start Value Register */ 04149 04150 union { 04151 vuint32_t R; 04152 struct { 04153 vuint32_t:23; 04154 vuint32_t CV:9; 04155 } B; 04156 } CVR[4]; /* Current Value Register */ 04157 04158 union { 04159 vuint32_t R; 04160 struct { 04161 vuint32_t:16; 04162 vuint32_t TM:1; 04163 vuint32_t CNT:2; 04164 vuint32_t DELAY:3; 04165 vuint32_t:4; 04166 vuint32_t CHANNELVALUE:6; 04167 } B; 04168 } EVTCFGR[64]; /* Event Configuration Register */ 04169 04170 }; /* end of CTUL_tag */ 04171 /****************************************************************************/ 04172 /* MODULE : CTU */ 04173 /****************************************************************************/ 04174 struct CTU_tag { 04175 04176 union { 04177 vuint32_t R; 04178 struct { 04179 vuint32_t I15_FE:1; 04180 vuint32_t I15_RE:1; 04181 vuint32_t I14_FE:1; 04182 vuint32_t I14_RE:1; 04183 vuint32_t I13_FE:1; 04184 vuint32_t I13_RE:1; 04185 vuint32_t I12_FE:1; 04186 vuint32_t I12_RE:1; 04187 vuint32_t I11_FE:1; 04188 vuint32_t I11_RE:1; 04189 vuint32_t I10_FE:1; 04190 vuint32_t I10_RE:1; 04191 vuint32_t I9_FE:1; 04192 vuint32_t I9_RE:1; 04193 vuint32_t I8_FE:1; 04194 vuint32_t I8_RE:1; 04195 vuint32_t I7_FE:1; 04196 vuint32_t I7_RE:1; 04197 vuint32_t I6_FE:1; 04198 vuint32_t I6_RE:1; 04199 vuint32_t I5_FE:1; 04200 vuint32_t I5_RE:1; 04201 vuint32_t I4_FE:1; 04202 vuint32_t I4_RE:1; 04203 vuint32_t I3_FE:1; 04204 vuint32_t I3_RE:1; 04205 vuint32_t I2_FE:1; 04206 vuint32_t I2_RE:1; 04207 vuint32_t I1_FE:1; 04208 vuint32_t I1_RE:1; 04209 vuint32_t I0_FE:1; 04210 vuint32_t I0_RE:1; 04211 } B; 04212 } TGSISR; /* -Trigger Generator Subunit Input Selection Register */ 04213 04214 union { 04215 vuint16_t R; 04216 struct { 04217 vuint16_t:7; 04218 vuint16_t ETTM:1; 04219 vuint16_t PRES:2; 04220 vuint16_t MRSSM:5; 04221 vuint16_t TGSM:1; 04222 } B; 04223 } TGSCR; /* Trigger Generator Subunit Control Register */ 04224 04225 union { 04226 vuint16_t R; 04227 struct { 04228 vuint16_t TCRV:16; 04229 } B; 04230 } TCR[8]; /* Trigger 0->7 Compare Register */ 04231 04232 union { 04233 vuint16_t R; 04234 struct { 04235 vuint16_t TGSCCV:16; 04236 } B; 04237 } TGSCCR; /* TGS Counter Compare Register */ 04238 04239 union { 04240 vuint16_t R; 04241 struct { 04242 vuint16_t TGSCRV:16; 04243 } B; 04244 } TGSCRR; /* TGS Counter Reload Register */ 04245 04246 uint16_t CTU_reserved0; 04247 04248 union { 04249 vuint32_t R; 04250 struct { 04251 vuint32_t:3; 04252 vuint32_t T3INDEX:5; 04253 vuint32_t:3; 04254 vuint32_t T2INDEX:5; 04255 vuint32_t:3; 04256 vuint32_t T1INDEX:5; 04257 vuint32_t:3; 04258 vuint32_t T0INDEX:5; 04259 } B; 04260 } CLCR1; /* Command List Control Register 1 */ 04261 04262 union { 04263 vuint32_t R; 04264 struct { 04265 vuint32_t:3; 04266 vuint32_t T7INDEX:5; 04267 vuint32_t:3; 04268 vuint32_t T6INDEX:5; 04269 vuint32_t:3; 04270 vuint32_t T5INDEX:5; 04271 vuint32_t:3; 04272 vuint32_t T4INDEX:5; 04273 } B; 04274 } CLCR2; /* Command List Control Register 2 */ 04275 04276 union { 04277 vuint32_t R; 04278 struct { 04279 vuint32_t:3; 04280 vuint32_t T3E:1; 04281 vuint32_t T3ETE:1; 04282 vuint32_t T3T1E:1; 04283 vuint32_t T3T0E:1; 04284 vuint32_t T3ADCE:1; 04285 vuint32_t:3; 04286 vuint32_t T2E:1; 04287 vuint32_t T2ETE:1; 04288 vuint32_t T2T1E:1; 04289 vuint32_t T2T0E:1; 04290 vuint32_t T2ADCE:1; 04291 vuint32_t:3; 04292 vuint32_t T1E:1; 04293 vuint32_t T1ETE:1; 04294 vuint32_t T1T1E:1; 04295 vuint32_t T1T0E:1; 04296 vuint32_t T1ADCE:1; 04297 vuint32_t:3; 04298 vuint32_t T0E:1; 04299 vuint32_t T0ETE:1; 04300 vuint32_t T0T1E:1; 04301 vuint32_t T0T0E:1; 04302 vuint32_t T0ADCE:1; 04303 } B; 04304 } THCR1; /* Trigger Handler Control Register 1 */ 04305 04306 union { 04307 vuint32_t R; 04308 struct { 04309 vuint32_t:3; 04310 vuint32_t T7E:1; 04311 vuint32_t T7ETE:1; 04312 vuint32_t T7T1E:1; 04313 vuint32_t T7T0E:1; 04314 vuint32_t T7ADCE:1; 04315 vuint32_t:3; 04316 vuint32_t T6E:1; 04317 vuint32_t T6ETE:1; 04318 vuint32_t T6T1E:1; 04319 vuint32_t T6T0E:1; 04320 vuint32_t T6ADCE:1; 04321 vuint32_t:3; 04322 vuint32_t T5E:1; 04323 vuint32_t T5ETE:1; 04324 vuint32_t T5T1E:1; 04325 vuint32_t T5T0E:1; 04326 vuint32_t T5ADCE:1; 04327 vuint32_t:3; 04328 vuint32_t T4E:1; 04329 vuint32_t T4ETE:1; 04330 vuint32_t T4T1E:1; 04331 vuint32_t T4T0E:1; 04332 vuint32_t T4ADCE:1; 04333 } B; 04334 } THCR2; /* Trigger Handler Control Register 2 */ 04335 04336 /* Single Conversion Mode - Comment for Dual Conversion Mode */ 04337 union { 04338 vuint16_t R; 04339 struct { 04340 vuint16_t CIR:1; 04341 vuint16_t LC:1; 04342 vuint16_t CMS:1; 04343 vuint16_t FIFO:3; 04344 vuint16_t:1; 04345 vuint16_t:3; 04346 vuint16_t SU:1; 04347 vuint16_t:1; 04348 vuint16_t CH:4; 04349 } B; 04350 } CLR[32]; /* Commands List Register x (double-buffered) (x = 1,...,32) */ 04351 04352 /* Uncomment for Dual Conversion Mode */ 04353 /*union { 04354 vuint16_t R; 04355 struct { 04356 vuint16_t CIR:1; 04357 vuint16_t LC:1; 04358 vuint16_t CMS:1; 04359 vuint16_t FIFO:3; 04360 vuint16_t :1; 04361 vuint16_t CHB:4; 04362 vuint16_t :1; 04363 vuint16_t CHA:4; 04364 } B; 04365 } CLR[32]; */ 04366 /* Commands List Register x (double-buffered) (x = 1,...,32) */ 04367 04368 union { 04369 vuint16_t R; 04370 struct { 04371 vuint16_t:8; 04372 vuint16_t DMAEN7:1; 04373 vuint16_t DMAEN6:1; 04374 vuint16_t DMAEN5:1; 04375 vuint16_t DMAEN4:1; 04376 vuint16_t DMAEN3:1; 04377 vuint16_t DMAEN2:1; 04378 vuint16_t DMAEN1:1; 04379 vuint16_t DMAEN0:1; 04380 } B; 04381 } CR; /* Control Register */ 04382 04383 union { 04384 vuint32_t R; 04385 struct { 04386 vuint32_t FIFO_OVERRUN_EN7:1; 04387 vuint32_t FIFO_OVERFLOW_EN7:1; 04388 vuint32_t FIFO_EMPTY_EN7:1; 04389 vuint32_t FIFO_FULL_EN7:1; 04390 vuint32_t FIFO_OVERRUN_EN6:1; 04391 vuint32_t FIFO_OVERFLOW_EN6:1; 04392 vuint32_t FIFO_EMPTY_EN6:1; 04393 vuint32_t FIFO_FULL_EN6:1; 04394 vuint32_t FIFO_OVERRUN_EN5:1; 04395 vuint32_t FIFO_OVERFLOW_EN5:1; 04396 vuint32_t FIFO_EMPTY_EN5:1; 04397 vuint32_t FIFO_FULL_EN5:1; 04398 vuint32_t FIFO_OVERRUN_EN4:1; 04399 vuint32_t FIFO_OVERFLOW_EN4:1; 04400 vuint32_t FIFO_EMPTY_EN4:1; 04401 vuint32_t FIFO_FULL_EN4:1; 04402 vuint32_t FIFO_OVERRUN_EN3:1; 04403 vuint32_t FIFO_OVERFLOW_EN3:1; 04404 vuint32_t FIFO_EMPTY_EN3:1; 04405 vuint32_t FIFO_FULL_EN3:1; 04406 vuint32_t FIFO_OVERRUN_EN2:1; 04407 vuint32_t FIFO_OVERFLOW_EN2:1; 04408 vuint32_t FIFO_EMPTY_EN2:1; 04409 vuint32_t FIFO_FULL_EN2:1; 04410 vuint32_t FIFO_OVERRUN_EN1:1; 04411 vuint32_t FIFO_OVERFLOW_EN1:1; 04412 vuint32_t FIFO_EMPTY_EN1:1; 04413 vuint32_t FIFO_FULL_EN1:1; 04414 vuint32_t FIFO_OVERRUN_EN0:1; 04415 vuint32_t FIFO_OVERFLOW_EN0:1; 04416 vuint32_t FIFO_EMPTY_EN0:1; 04417 vuint32_t FIFO_FULL_EN0:1; 04418 } B; 04419 } FCR; /* CONTROL REGISTER FIFO */ 04420 04421 union { 04422 vuint32_t R; 04423 struct { 04424 vuint32_t THRESHOLD3:8; 04425 vuint32_t THRESHOLD2:8; 04426 vuint32_t THRESHOLD1:8; 04427 vuint32_t THRESHOLD0:8; 04428 } B; 04429 } TH1; /* Threshold Register */ 04430 04431 union { 04432 vuint32_t R; 04433 struct { 04434 vuint32_t THRESHOLD7:8; 04435 vuint32_t THRESHOLD6:8; 04436 vuint32_t THRESHOLD5:8; 04437 vuint32_t THRESHOLD4:8; 04438 } B; 04439 } TH2; /* Threshold Register */ 04440 04441 union { 04442 vuint32_t R; 04443 struct { 04444 vuint32_t FIFO_OVERRUN7:1; 04445 vuint32_t FIFO_OVERFLOW7:1; 04446 vuint32_t FIFO_EMPTY7:1; 04447 vuint32_t FIFO_FULL7:1; 04448 vuint32_t FIFO_OVERRUN6:1; 04449 vuint32_t FIFO_OVERFLOW6:1; 04450 vuint32_t FIFO_EMPTY6:1; 04451 vuint32_t FIFO_FULL6:1; 04452 vuint32_t FIFO_OVERRUN5:1; 04453 vuint32_t FIFO_OVERFLOW5:1; 04454 vuint32_t FIFO_EMPTY5:1; 04455 vuint32_t FIFO_FULL5:1; 04456 vuint32_t FIFO_OVERRUN4:1; 04457 vuint32_t FIFO_OVERFLOW4:1; 04458 vuint32_t FIFO_EMPTY4:1; 04459 vuint32_t FIFO_FULL4:1; 04460 vuint32_t FIFO_OVERRUN3:1; 04461 vuint32_t FIFO_OVERFLOW3:1; 04462 vuint32_t FIFO_EMPTY3:1; 04463 vuint32_t FIFO_FULL3:1; 04464 vuint32_t FIFO_OVERRUN2:1; 04465 vuint32_t FIFO_OVERFLOW2:1; 04466 vuint32_t FIFO_EMPTY2:1; 04467 vuint32_t FIFO_FULL2:1; 04468 vuint32_t FIFO_OVERRUN1:1; 04469 vuint32_t FIFO_OVERFLOW1:1; 04470 vuint32_t FIFO_EMPTY1:1; 04471 vuint32_t FIFO_FULL1:1; 04472 vuint32_t FIFO_OVERRUN0:1; 04473 vuint32_t FIFO_OVERFLOW0:1; 04474 vuint32_t FIFO_EMPTY0:1; 04475 vuint32_t FIFO_FULL0:1; 04476 } B; 04477 } STATUS; /* STATUS REGISTER */ 04478 04479 union { 04480 vuint32_t R; 04481 struct { 04482 vuint32_t:11; 04483 vuint32_t NCH:5; 04484 vuint32_t:6; 04485 vuint32_t DATA:10; 04486 } B; 04487 } FRA[8]; /* FIFO RIGHT aligned REGISTER */ 04488 04489 union { 04490 vuint32_t R; 04491 struct { 04492 vuint32_t:11; 04493 vuint32_t NCH:5; 04494 vuint32_t DATA:10; 04495 vuint32_t:6; 04496 } B; 04497 } FLA[8]; /* FIFO LEFT aligned REGISTER */ 04498 04499 union { 04500 vuint16_t R; 04501 struct { 04502 vuint16_t:7; 04503 vuint16_t ETOE:1; 04504 vuint16_t T1OE:1; 04505 vuint16_t T0OE:1; 04506 vuint16_t ADCOE:1; 04507 vuint16_t TGSOSM:1; 04508 vuint16_t MRSO:1; 04509 vuint16_t ICE:1; 04510 vuint16_t SMTO:1; 04511 vuint16_t MRSRE:1; 04512 } B; 04513 } CTUEFR; /* Cross Triggering Unit Error Flag Register */ 04514 04515 union { 04516 vuint16_t R; 04517 struct { 04518 vuint16_t:6; 04519 vuint16_t ADC:1; 04520 vuint16_t T7:1; 04521 vuint16_t T6:1; 04522 vuint16_t T5:1; 04523 vuint16_t T4:1; 04524 vuint16_t T3:1; 04525 vuint16_t T2:1; 04526 vuint16_t T1:1; 04527 vuint16_t T0:1; 04528 vuint16_t MRS:1; 04529 } B; 04530 } CTUIFR; /* Cross Triggering Unit Interrupt Flag Register */ 04531 04532 union { 04533 vuint16_t R; 04534 struct { 04535 vuint16_t T7IE:1; 04536 vuint16_t T6IE:1; 04537 vuint16_t T5IE:1; 04538 vuint16_t T4IE:1; 04539 vuint16_t T3IE:1; 04540 vuint16_t T2IE:1; 04541 vuint16_t T1IE:1; 04542 vuint16_t T0IE:1; 04543 vuint16_t:5; 04544 vuint16_t MRSDMAE:1; 04545 vuint16_t MRSIE:1; 04546 vuint16_t IEE:1; 04547 } B; 04548 } CTUIR; /* Cross Triggering Unit Interrupt/DMA Register */ 04549 04550 union { 04551 vuint16_t R; 04552 struct { 04553 vuint16_t:8; 04554 vuint16_t COTR:8; 04555 } B; 04556 } COTR; /* Control On-Time Register */ 04557 04558 union { 04559 vuint16_t R; 04560 struct { 04561 vuint16_t T7SG:1; 04562 vuint16_t T6SG:1; 04563 vuint16_t T5SG:1; 04564 vuint16_t T4SG:1; 04565 vuint16_t T3SG:1; 04566 vuint16_t T2SG:1; 04567 vuint16_t T1SG:1; 04568 vuint16_t T0SG:1; 04569 vuint16_t CTUADCRESET:1; 04570 vuint16_t CTUODIS:1; 04571 vuint16_t FILTERENABLE:1; 04572 vuint16_t CGRE:1; 04573 vuint16_t FGRE:1; 04574 vuint16_t MRSSG:1; 04575 vuint16_t GRE:1; 04576 vuint16_t TGSISRRE:1; 04577 } B; 04578 } CTUCR; /* Cross Triggering Unit Control Register */ 04579 04580 union { 04581 vuint16_t R; 04582 struct { 04583 vuint16_t:8; 04584 vuint16_t FILTERVALUE:8; 04585 } B; 04586 } CTUFILTER; /* Cross Triggering Unit Digital Filter */ 04587 04588 union { 04589 vuint16_t R; 04590 struct { 04591 vuint16_t:15; 04592 vuint16_t MDIS:1; 04593 } B; 04594 } CTUPCR; /* Cross Triggering Unit Power Control */ 04595 04596 }; /* end of CTU_tag */ 04597 /****************************************************************************/ 04598 /* MODULE : FCU */ 04599 /****************************************************************************/ 04600 struct FCU_tag { 04601 04602 union { 04603 vuint32_t R; 04604 struct { 04605 vuint32_t MCL:1; 04606 vuint32_t TM:2; 04607 vuint32_t:19; 04608 vuint32_t PS:2; 04609 vuint32_t FOM:2; 04610 vuint32_t FOP:6; 04611 } B; 04612 } MCR; /* Module Configuration Register */ 04613 04614 union { 04615 vuint32_t R; 04616 struct { 04617 vuint32_t SRF0:1; 04618 vuint32_t SRF1:1; 04619 vuint32_t SRF2:1; 04620 vuint32_t SRF3:1; 04621 vuint32_t SRF4:1; 04622 vuint32_t SRF5:1; 04623 vuint32_t SRF6:1; 04624 vuint32_t SRF7:1; 04625 vuint32_t SRF8:1; 04626 vuint32_t SRF9:1; 04627 vuint32_t SRF10:1; 04628 vuint32_t SRF11:1; 04629 vuint32_t SRF12:1; 04630 vuint32_t SRF13:1; 04631 vuint32_t SRF14:1; 04632 vuint32_t SRF15:1; 04633 vuint32_t HRF15:1; 04634 vuint32_t HRF14:1; 04635 vuint32_t HRF13:1; 04636 vuint32_t HRF12:1; 04637 vuint32_t HRF11:1; 04638 vuint32_t HRF10:1; 04639 vuint32_t HRF9:1; 04640 vuint32_t HRF8:1; 04641 vuint32_t HRF7:1; 04642 vuint32_t HRF6:1; 04643 vuint32_t HRF5:1; 04644 vuint32_t HRF4:1; 04645 vuint32_t HRF3:1; 04646 vuint32_t HRF2:1; 04647 vuint32_t HRF1:1; 04648 vuint32_t HRF0:1; 04649 } B; 04650 } FFR; /* Fault Flag Register */ 04651 04652 union { 04653 vuint32_t R; 04654 struct { 04655 vuint32_t FRSRF0:1; 04656 vuint32_t FRSRF1:1; 04657 vuint32_t FRSRF2:1; 04658 vuint32_t FRSRF3:1; 04659 vuint32_t FRSRF4:1; 04660 vuint32_t FRSRF5:1; 04661 vuint32_t FRSRF6:1; 04662 vuint32_t FRSRF7:1; 04663 vuint32_t FRSRF8:1; 04664 vuint32_t FRSRF9:1; 04665 vuint32_t FRSRF10:1; 04666 vuint32_t FRSRF11:1; 04667 vuint32_t FRSRF12:1; 04668 vuint32_t FRSRF13:1; 04669 vuint32_t FRSRF14:1; 04670 vuint32_t FRSRF15:1; 04671 vuint32_t FRHRF15:1; 04672 vuint32_t FRHRF14:1; 04673 vuint32_t FRHRF13:1; 04674 vuint32_t FRHRF12:1; 04675 vuint32_t FRHRF11:1; 04676 vuint32_t FRHRF10:1; 04677 vuint32_t FRHRF9:1; 04678 vuint32_t FRHRF8:1; 04679 vuint32_t FRHRF7:1; 04680 vuint32_t FRHRF6:1; 04681 vuint32_t FRHRF5:1; 04682 vuint32_t FRHRF4:1; 04683 vuint32_t FRHRF3:1; 04684 vuint32_t FRHRF2:1; 04685 vuint32_t FRHRF1:1; 04686 vuint32_t FRHRF0:1; 04687 } B; 04688 } FFFR; /* Frozen Fault Flag Register */ 04689 04690 union { 04691 vuint32_t R; 04692 struct { 04693 vuint32_t:2; 04694 vuint32_t FSRF2:1; 04695 vuint32_t FSRF3:1; 04696 vuint32_t FSRF4:1; 04697 vuint32_t FSRF5:1; 04698 vuint32_t FSRF6:1; 04699 vuint32_t FSRF7:1; 04700 vuint32_t FSRF8:1; 04701 vuint32_t FSRF9:1; 04702 vuint32_t FSRF10:1; 04703 vuint32_t FSRF11:1; 04704 vuint32_t FSRF12:1; 04705 vuint32_t FSRF13:1; 04706 vuint32_t FSRF14:1; 04707 vuint32_t FSRF15:1; 04708 vuint32_t FHRF15:1; 04709 vuint32_t FHRF14:1; 04710 vuint32_t FHRF13:1; 04711 vuint32_t FHRF12:1; 04712 vuint32_t FHRF11:1; 04713 vuint32_t FHRF10:1; 04714 vuint32_t FHRF9:1; 04715 vuint32_t FHRF8:1; 04716 vuint32_t FHRF7:1; 04717 vuint32_t FHRF6:1; 04718 vuint32_t FHRF5:1; 04719 vuint32_t FHRF4:1; 04720 vuint32_t FHRF3:1; 04721 vuint32_t FHRF2:1; 04722 vuint32_t FHRF1:1; 04723 vuint32_t FHRF0:1; 04724 } B; 04725 } FFGR; /* Fake Fault Generation Register */ 04726 04727 union { 04728 vuint32_t R; 04729 struct { 04730 vuint32_t ESF0:1; 04731 vuint32_t ESF1:1; 04732 vuint32_t ESF2:1; 04733 vuint32_t ESF3:1; 04734 vuint32_t ESF4:1; 04735 vuint32_t ESF5:1; 04736 vuint32_t ESF6:1; 04737 vuint32_t ESF7:1; 04738 vuint32_t ESF8:1; 04739 vuint32_t ESF9:1; 04740 vuint32_t ESF10:1; 04741 vuint32_t ESF11:1; 04742 vuint32_t ESF12:1; 04743 vuint32_t ESF13:1; 04744 vuint32_t ESF14:1; 04745 vuint32_t ESF15:1; 04746 vuint32_t EHF15:1; 04747 vuint32_t EHF14:1; 04748 vuint32_t EHF13:1; 04749 vuint32_t EHF12:1; 04750 vuint32_t EHF11:1; 04751 vuint32_t EHF10:1; 04752 vuint32_t EHF9:1; 04753 vuint32_t EHF8:1; 04754 vuint32_t EHF7:1; 04755 vuint32_t EHF6:1; 04756 vuint32_t EHF5:1; 04757 vuint32_t EHF4:1; 04758 vuint32_t EHF3:1; 04759 vuint32_t EHF2:1; 04760 vuint32_t EHF1:1; 04761 vuint32_t EHF0:1; 04762 } B; 04763 } FER; /* Fault Enable Register */ 04764 04765 union { 04766 vuint32_t R; 04767 struct { 04768 vuint32_t KR:32; 04769 } B; 04770 } KR; /* Fault Collection Unit Key Register */ 04771 04772 union { 04773 vuint32_t R; 04774 struct { 04775 vuint32_t TR:32; 04776 } B; 04777 } TR; /* Fault Collection Unit Timeout Register */ 04778 04779 union { 04780 vuint32_t R; 04781 struct { 04782 vuint32_t TESF0:1; 04783 vuint32_t TESF1:1; 04784 vuint32_t TESF2:1; 04785 vuint32_t TESF3:1; 04786 vuint32_t TESF4:1; 04787 vuint32_t TESF5:1; 04788 vuint32_t TESF6:1; 04789 vuint32_t TESF7:1; 04790 vuint32_t TESF8:1; 04791 vuint32_t TESF9:1; 04792 vuint32_t TESF10:1; 04793 vuint32_t TESF11:1; 04794 vuint32_t TESF12:1; 04795 vuint32_t TESF13:1; 04796 vuint32_t TESF14:1; 04797 vuint32_t TESF15:1; 04798 vuint32_t TEHF15:1; 04799 vuint32_t TEHF14:1; 04800 vuint32_t TEHF13:1; 04801 vuint32_t TEHF12:1; 04802 vuint32_t TEHF11:1; 04803 vuint32_t TEHF10:1; 04804 vuint32_t TEHF9:1; 04805 vuint32_t TEHF8:1; 04806 vuint32_t TEHF7:1; 04807 vuint32_t TEHF6:1; 04808 vuint32_t TEHF5:1; 04809 vuint32_t TEHF4:1; 04810 vuint32_t TEHF3:1; 04811 vuint32_t TEHF2:1; 04812 vuint32_t TEHF1:1; 04813 vuint32_t TEHF0:1; 04814 } B; 04815 } TER; /* Fault Collection Unit Timeout Enable Register */ 04816 04817 union { 04818 vuint32_t R; 04819 struct { 04820 vuint32_t:28; 04821 vuint32_t S0:1; 04822 vuint32_t S1:1; 04823 vuint32_t S2:1; 04824 vuint32_t S3:1; 04825 } B; 04826 } MSR; /* Module state register */ 04827 04828 union { 04829 vuint32_t R; 04830 struct { 04831 vuint32_t:12; 04832 vuint32_t MCPS:4; 04833 vuint32_t:12; 04834 vuint32_t MCAS:4; 04835 } B; 04836 } MCSR; /* MC state register */ 04837 04838 union { 04839 vuint32_t R; 04840 struct { 04841 vuint32_t:12; 04842 vuint32_t FRMCPS:4; 04843 vuint32_t:12; 04844 vuint32_t FRMCAS:4; 04845 } B; 04846 } FMCSR; /* Frozen MC State Register */ 04847 04848 }; /* end of FCU_tag */ 04849 /****************************************************************************/ 04850 /* MODULE : SMC - Stepper Motor Control */ 04851 /****************************************************************************/ 04852 struct SMC_tag { 04853 04854 union { 04855 vuint8_t R; 04856 struct { 04857 vuint8_t:1; 04858 vuint8_t MCPRE:2; 04859 vuint8_t MCSWAI:1; 04860 vuint8_t:1; 04861 vuint8_t DITH:1; 04862 vuint8_t:1; 04863 vuint8_t MCTOIF:1; 04864 } B; 04865 } CTL0; /* Motor Controller Control Register 0 */ 04866 04867 union { 04868 vuint8_t R; 04869 struct { 04870 vuint8_t RECIRC:1; 04871 vuint8_t:6; 04872 vuint8_t MCTOIE:1; 04873 } B; 04874 } CTL1; /* Motor Controller Control Register 1 */ 04875 04876 union { 04877 vuint16_t R; 04878 struct { 04879 vuint16_t:5; 04880 vuint16_t P:11; 04881 } B; 04882 } PER; /* Motor Controller Period Register */ 04883 04884 int32_t SMC_reserved0[3]; /* (0x010 - 0x004)/4 = 0x01 */ 04885 04886 union { 04887 vuint8_t R; 04888 struct { 04889 vuint8_t MCOM:2; 04890 vuint8_t MCAM:2; 04891 vuint8_t:2; 04892 vuint8_t CD:2; 04893 } B; 04894 } CC[12]; /* Motor Controller Channel Control Register 0->11 */ 04895 04896 int32_t SMC_reserved1; /* (0x020 - 0x01C)/4 = 0x01 */ 04897 04898 union { 04899 vuint16_t R; 04900 struct { 04901 vuint16_t S:5; 04902 vuint16_t D:11; 04903 } B; 04904 } DC[12]; /* Motor Controller Duty Cycle Register 0->11 */ 04905 04906 int8_t SMC_reserved2[8]; /* (0x040 - 0x038) = 0x08 */ 04907 04908 union { 04909 vuint8_t R; 04910 struct { 04911 vuint8_t TOUT:8; 04912 } B; 04913 } SDTO; /* Shortcut detector time-out register */ 04914 04915 int8_t SMC_reserved3[3]; /* (0x044 - 0x041) = 0x03 */ 04916 04917 union { 04918 vuint8_t R; 04919 struct { 04920 vuint8_t EN:8; 04921 } B; 04922 } SDE[3]; /* Shortcut detector enable register 0->2 */ 04923 04924 int8_t SMC_reserved4; /* (0x048 - 0x047) = 0x01 */ 04925 04926 union { 04927 vuint8_t R; 04928 struct { 04929 vuint8_t IRQ_EN:8; 04930 } B; 04931 } SDIEN[3]; /* Shortcut detector interrupt enable register 0->2 */ 04932 04933 int8_t SMC_reserved5; /* (0x04C - 0x04B) = 0x01 */ 04934 04935 union { 04936 vuint8_t R; 04937 struct { 04938 vuint8_t IRQ:8; 04939 } B; 04940 } SDI[3]; /* Shortcut detector interrupt register 0->2 */ 04941 04942 }; /* end of SMC_tag */ 04943 /****************************************************************************/ 04944 /* MODULE : SSD - Stepper Stall Detect */ 04945 /****************************************************************************/ 04946 struct SSD_tag { 04947 04948 union { 04949 vuint16_t R; 04950 struct { 04951 vuint16_t TRIG:1; 04952 vuint16_t STEP:2; 04953 vuint16_t RCIR:1; 04954 vuint16_t ITGDIR:1; 04955 vuint16_t BLNDCL:1; 04956 vuint16_t ITGDCL:1; 04957 vuint16_t RTZE:1; 04958 vuint16_t:1; 04959 vuint16_t BLNST:1; 04960 vuint16_t ITGST:1; 04961 vuint16_t:3; 04962 vuint16_t SDCPU:1; 04963 vuint16_t DZDIS:1; 04964 } B; 04965 } CONTROL; /* Control & Status Register */ 04966 04967 union { 04968 vuint16_t R; 04969 struct { 04970 vuint16_t BLNIF:1; 04971 vuint16_t ITGIF:1; 04972 vuint16_t:5; 04973 vuint16_t ACOVIF:1; 04974 vuint16_t BLNIE:1; 04975 vuint16_t ITGIE:1; 04976 vuint16_t:5; 04977 vuint16_t ACOVIE:1; 04978 } B; 04979 } IRQ; /* Interrupt Flag and Enable Register */ 04980 04981 union { 04982 vuint16_t R; 04983 struct { 04984 vuint16_t ITGACC:16; 04985 } B; 04986 } ITGACC; /* Integrator Accumulator register */ 04987 04988 union { 04989 vuint16_t R; 04990 struct { 04991 vuint16_t DCNT:16; 04992 } B; 04993 } DCNT; /* Down Counter Count register */ 04994 04995 union { 04996 vuint16_t R; 04997 struct { 04998 vuint16_t BLNCNTLD:16; 04999 } B; 05000 } BLNCNTLD; /* Blanking Counter Load register */ 05001 05002 union { 05003 vuint16_t R; 05004 struct { 05005 vuint16_t ITGCNTLD:16; 05006 } B; 05007 } ITGCNTLD; /* Integration Counter Load register */ 05008 05009 union { 05010 vuint16_t R; 05011 struct { 05012 vuint16_t:1; 05013 vuint16_t BLNDIV:3; 05014 vuint16_t:1; 05015 vuint16_t ITSSDIV:3; 05016 vuint16_t:2; 05017 vuint16_t OFFCNC:2; 05018 vuint16_t:1; 05019 vuint16_t ACDIV:3; 05020 } B; 05021 } PRESCALE; /* Prescaler register */ 05022 05023 union { 05024 vuint16_t R; 05025 struct { 05026 vuint16_t TMST:1; 05027 vuint16_t ANLOUT:1; 05028 vuint16_t ANLIN:1; 05029 vuint16_t SSDEN:1; 05030 vuint16_t STEP1:1; 05031 vuint16_t POL:1; 05032 vuint16_t ITG:1; 05033 vuint16_t DACHIZ:1; 05034 vuint16_t BUFHIZ:1; 05035 vuint16_t AMPHIZ:1; 05036 vuint16_t RESSHORT:1; 05037 vuint16_t ITSSDRV:1; 05038 vuint16_t ITSSDRVEN:1; 05039 vuint16_t REFDRV:1; 05040 vuint16_t REFDRVEN:1; 05041 } B; 05042 } FNTEST; /* Functional Test Mode register */ 05043 05044 }; /* end of SSD_tag */ 05045 /****************************************************************************/ 05046 /* MODULE : EMIOS */ 05047 /****************************************************************************/ 05048 struct EMIOS_CHANNEL_tag { 05049 union { 05050 vuint32_t R; 05051 struct { 05052 vuint32_t:8; 05053 vuint32_t CADR:24; 05054 } B; 05055 } CADR; /* Channel A Data Register */ 05056 05057 union { 05058 vuint32_t R; 05059 struct { 05060 vuint32_t:8; 05061 vuint32_t CBDR:24; 05062 } B; 05063 } CBDR; /* Channel B Data Register */ 05064 05065 union { 05066 vuint32_t R; 05067 struct { 05068 vuint32_t:8; 05069 vuint32_t CCNTR:24; 05070 } B; 05071 } CCNTR; /* Channel Counter Register */ 05072 05073 union { 05074 vuint32_t R; 05075 struct { 05076 vuint32_t FREN:1; 05077 vuint32_t ODIS:1; 05078 vuint32_t ODISSL:2; 05079 vuint32_t UCPRE:2; 05080 vuint32_t UCPEN:1; 05081 vuint32_t DMA:1; 05082 vuint32_t:1; 05083 vuint32_t IF:4; 05084 vuint32_t FCK:1; 05085 vuint32_t FEN:1; 05086 vuint32_t:3; 05087 vuint32_t FORCMA:1; 05088 vuint32_t FORCMB:1; 05089 vuint32_t:1; 05090 vuint32_t BSL:2; 05091 vuint32_t EDSEL:1; 05092 vuint32_t EDPOL:1; 05093 vuint32_t MODE:7; 05094 } B; 05095 } CCR; /* Channel Control Register */ 05096 05097 union { 05098 vuint32_t R; 05099 struct { 05100 vuint32_t OVR:1; 05101 vuint32_t:15; 05102 vuint32_t OVFL:1; 05103 vuint32_t:12; 05104 vuint32_t UCIN:1; 05105 vuint32_t UCOUT:1; 05106 vuint32_t FLAG:1; 05107 } B; 05108 } CSR; /* Channel Status Register */ 05109 05110 union { 05111 vuint32_t R; /* Alternate Channel A Data Register */ 05112 } ALTCADR; 05113 05114 uint32_t emios_channel_reserved[2]; 05115 05116 }; /* end of EMIOS_CHANNEL_tag */ 05117 05118 struct EMIOS_tag { 05119 union { 05120 vuint32_t R; 05121 struct { 05122 vuint32_t:1; 05123 vuint32_t MDIS:1; 05124 vuint32_t FRZ:1; 05125 vuint32_t GTBE:1; 05126 vuint32_t ETB:1; 05127 vuint32_t GPREN:1; 05128 vuint32_t:6; 05129 vuint32_t SRV:4; 05130 vuint32_t GPRE:8; 05131 vuint32_t:8; 05132 } B; 05133 } MCR; /* Module Configuration Register */ 05134 05135 union { 05136 vuint32_t R; 05137 struct { 05138 vuint32_t:8; 05139 vuint32_t F23:1; 05140 vuint32_t F22:1; 05141 vuint32_t F21:1; 05142 vuint32_t F20:1; 05143 vuint32_t F19:1; 05144 vuint32_t F18:1; 05145 vuint32_t F17:1; 05146 vuint32_t F16:1; 05147 vuint32_t F15:1; 05148 vuint32_t F14:1; 05149 vuint32_t F13:1; 05150 vuint32_t F12:1; 05151 vuint32_t F11:1; 05152 vuint32_t F10:1; 05153 vuint32_t F9:1; 05154 vuint32_t F8:1; 05155 vuint32_t F7:1; 05156 vuint32_t F6:1; 05157 vuint32_t F5:1; 05158 vuint32_t F4:1; 05159 vuint32_t F3:1; 05160 vuint32_t F2:1; 05161 vuint32_t F1:1; 05162 vuint32_t F0:1; 05163 } B; 05164 } GFR; /* Global FLAG Register */ 05165 05166 union { 05167 vuint32_t R; 05168 struct { 05169 vuint32_t:8; 05170 vuint32_t OU23:1; 05171 vuint32_t OU22:1; 05172 vuint32_t OU21:1; 05173 vuint32_t OU20:1; 05174 vuint32_t OU19:1; 05175 vuint32_t OU18:1; 05176 vuint32_t OU17:1; 05177 vuint32_t OU16:1; 05178 vuint32_t OU15:1; 05179 vuint32_t OU14:1; 05180 vuint32_t OU13:1; 05181 vuint32_t OU12:1; 05182 vuint32_t OU11:1; 05183 vuint32_t OU10:1; 05184 vuint32_t OU9:1; 05185 vuint32_t OU8:1; 05186 vuint32_t OU7:1; 05187 vuint32_t OU6:1; 05188 vuint32_t OU5:1; 05189 vuint32_t OU4:1; 05190 vuint32_t OU3:1; 05191 vuint32_t OU2:1; 05192 vuint32_t OU1:1; 05193 vuint32_t OU0:1; 05194 } B; 05195 } OUDR; /* Output Update Disable Register */ 05196 05197 union { 05198 vuint32_t R; 05199 struct { 05200 vuint32_t:8; 05201 vuint32_t CHDIS23:1; 05202 vuint32_t CHDIS22:1; 05203 vuint32_t CHDIS21:1; 05204 vuint32_t CHDIS20:1; 05205 vuint32_t CHDIS19:1; 05206 vuint32_t CHDIS18:1; 05207 vuint32_t CHDIS17:1; 05208 vuint32_t CHDIS16:1; 05209 vuint32_t CHDIS15:1; 05210 vuint32_t CHDIS14:1; 05211 vuint32_t CHDIS13:1; 05212 vuint32_t CHDIS12:1; 05213 vuint32_t CHDIS11:1; 05214 vuint32_t CHDIS10:1; 05215 vuint32_t CHDIS9:1; 05216 vuint32_t CHDIS8:1; 05217 vuint32_t CHDIS7:1; 05218 vuint32_t CHDIS6:1; 05219 vuint32_t CHDIS5:1; 05220 vuint32_t CHDIS4:1; 05221 vuint32_t CHDIS3:1; 05222 vuint32_t CHDIS2:1; 05223 vuint32_t CHDIS1:1; 05224 vuint32_t CHDIS0:1; 05225 } B; 05226 } UCDIS; /* Disable Channel Register */ 05227 05228 uint32_t emios_reserved1[4]; 05229 05230 struct EMIOS_CHANNEL_tag CH[28]; 05231 05232 }; /* end of EMIOS_tag */ 05233 /****************************************************************************/ 05234 /* MODULE : pit */ 05235 /****************************************************************************/ 05236 struct PIT_tag { 05237 union { 05238 vuint32_t R; 05239 struct { 05240 vuint32_t:30; 05241 vuint32_t MDIS:1; 05242 vuint32_t FRZ:1; 05243 } B; 05244 } PITMCR; 05245 05246 uint32_t pit_reserved1[63]; /* (0x0100 - 0x0004)/4 = 0x3F */ 05247 05248 struct { 05249 union { 05250 vuint32_t R; 05251 struct { 05252 vuint32_t TSV:32; 05253 } B; 05254 } LDVAL; 05255 05256 union { 05257 vuint32_t R; 05258 struct { 05259 vuint32_t TVL:32; 05260 } B; 05261 } CVAL; 05262 05263 union { 05264 vuint32_t R; 05265 struct { 05266 vuint32_t:30; 05267 vuint32_t TIE:1; 05268 vuint32_t TEN:1; 05269 } B; 05270 } TCTRL; 05271 05272 union { 05273 vuint32_t R; 05274 struct { 05275 vuint32_t:31; 05276 vuint32_t TIF:1; 05277 } B; 05278 } TFLG; 05279 } CH[6]; 05280 05281 }; /* end of PIT_tag */ 05282 /****************************************************************************/ 05283 /* MODULE : i2c */ 05284 /****************************************************************************/ 05285 struct I2C_tag { 05286 union { 05287 vuint8_t R; 05288 struct { 05289 vuint8_t ADR:7; 05290 vuint8_t:1; 05291 } B; 05292 } IBAD; /* Module Bus Address Register */ 05293 05294 union { 05295 vuint8_t R; 05296 struct { 05297 vuint8_t IBC:8; 05298 } B; 05299 } IBFD; /* Module Bus Frequency Register */ 05300 05301 union { 05302 vuint8_t R; 05303 struct { 05304 vuint8_t MDIS:1; 05305 vuint8_t IBIE:1; 05306 vuint8_t MS:1; 05307 vuint8_t TX:1; 05308 vuint8_t NOACK:1; 05309 vuint8_t RSTA:1; 05310 vuint8_t DMAEN:1; 05311 vuint8_t IBDOZE:1; 05312 } B; 05313 } IBCR; /* Module Bus Control Register */ 05314 05315 union { 05316 vuint8_t R; 05317 struct { 05318 vuint8_t TCF:1; 05319 vuint8_t IAAS:1; 05320 vuint8_t IBB:1; 05321 vuint8_t IBAL:1; 05322 vuint8_t:1; 05323 vuint8_t SRW:1; 05324 vuint8_t IBIF:1; 05325 vuint8_t RXAK:1; 05326 } B; 05327 } IBSR; /* Module Status Register */ 05328 05329 union { 05330 vuint8_t R; 05331 struct { 05332 vuint8_t DATA:8; 05333 } B; 05334 } IBDR; /* Module Data Register */ 05335 05336 union { 05337 vuint8_t R; 05338 struct { 05339 vuint8_t BIIE:1; 05340 vuint8_t:7; 05341 } B; 05342 } IBIC; /* Module Interrupt Configuration Register */ 05343 05344 }; /* end of I2C_tag */ 05345 /****************************************************************************/ 05346 /* MODULE : MPU */ 05347 /****************************************************************************/ 05348 struct MPU_tag { 05349 union { 05350 vuint32_t R; 05351 struct { 05352 vuint32_t SPERR:8; 05353 vuint32_t:4; 05354 vuint32_t HRL:4; 05355 vuint32_t NSP:4; 05356 vuint32_t NGRD:4; 05357 vuint32_t:7; 05358 vuint32_t VLD:1; 05359 } B; 05360 } CESR; /* Module Control/Error Status Register */ 05361 05362 uint32_t mpu_reserved1[3]; /* (0x010 - 0x004)/4 = 0x03 */ 05363 05364 union { 05365 vuint32_t R; 05366 struct { 05367 vuint32_t EADDR:32; 05368 } B; 05369 } EAR0; 05370 05371 union { 05372 vuint32_t R; 05373 struct { 05374 vuint32_t EACD:16; 05375 vuint32_t EPID:8; 05376 vuint32_t EMN:4; 05377 vuint32_t EATTR:3; 05378 vuint32_t ERW:1; 05379 } B; 05380 } EDR0; 05381 05382 union { 05383 vuint32_t R; 05384 struct { 05385 vuint32_t EADDR:32; 05386 } B; 05387 } EAR1; 05388 05389 union { 05390 vuint32_t R; 05391 struct { 05392 vuint32_t EACD:16; 05393 vuint32_t EPID:8; 05394 vuint32_t EMN:4; 05395 vuint32_t EATTR:3; 05396 vuint32_t ERW:1; 05397 } B; 05398 } EDR1; 05399 05400 union { 05401 vuint32_t R; 05402 struct { 05403 vuint32_t EADDR:32; 05404 } B; 05405 } EAR2; 05406 05407 union { 05408 vuint32_t R; 05409 struct { 05410 vuint32_t EACD:16; 05411 vuint32_t EPID:8; 05412 vuint32_t EMN:4; 05413 vuint32_t EATTR:3; 05414 vuint32_t ERW:1; 05415 } B; 05416 } EDR2; 05417 05418 union { 05419 vuint32_t R; 05420 struct { 05421 vuint32_t EADDR:32; 05422 } B; 05423 } EAR3; 05424 05425 union { 05426 vuint32_t R; 05427 struct { 05428 vuint32_t EACD:16; 05429 vuint32_t EPID:8; 05430 vuint32_t EMN:4; 05431 vuint32_t EATTR:3; 05432 vuint32_t ERW:1; 05433 } B; 05434 } EDR3; 05435 05436 uint32_t mpu_reserved2[244]; /* (0x0400 - 0x0030)/4 = 0x0F4 */ 05437 05438 struct { 05439 union { 05440 vuint32_t R; 05441 struct { 05442 vuint32_t SRTADDR:27; 05443 vuint32_t:5; 05444 } B; 05445 } WORD0; /* Region Descriptor n Word 0 */ 05446 05447 union { 05448 vuint32_t R; 05449 struct { 05450 vuint32_t ENDADDR:27; 05451 vuint32_t:5; 05452 } B; 05453 } WORD1; /* Region Descriptor n Word 1 */ 05454 05455 union { 05456 vuint32_t R; 05457 struct { 05458 vuint32_t M7RE:1; 05459 vuint32_t M7WE:1; 05460 vuint32_t M6RE:1; 05461 vuint32_t M6WE:1; 05462 vuint32_t M5RE:1; 05463 vuint32_t M5WE:1; 05464 vuint32_t M4RE:1; 05465 vuint32_t M4WE:1; 05466 vuint32_t M3PE:1; 05467 vuint32_t M3SM:2; 05468 vuint32_t M3UM:3; 05469 vuint32_t M2PE:1; 05470 vuint32_t M2SM:2; 05471 vuint32_t M2UM:3; 05472 vuint32_t M1PE:1; 05473 vuint32_t M1SM:2; 05474 vuint32_t M1UM:3; 05475 vuint32_t M0PE:1; 05476 vuint32_t M0SM:2; 05477 vuint32_t M0UM:3; 05478 } B; 05479 } WORD2; /* Region Descriptor n Word 2 */ 05480 05481 union { 05482 vuint32_t R; 05483 struct { 05484 vuint32_t PID:8; 05485 vuint32_t PIDMASK:8; 05486 vuint32_t:15; 05487 vuint32_t VLD:1; 05488 } B; 05489 } WORD3; /* Region Descriptor n Word 3 */ 05490 05491 } RGD[16]; 05492 05493 uint32_t mpu_reserved3[192]; /* (0x0800 - 0x0500)/4 = 0x0C0 */ 05494 05495 union { 05496 vuint32_t R; 05497 struct { 05498 vuint32_t M7RE:1; 05499 vuint32_t M7WE:1; 05500 vuint32_t M6RE:1; 05501 vuint32_t M6WE:1; 05502 vuint32_t M5RE:1; 05503 vuint32_t M5WE:1; 05504 vuint32_t M4RE:1; 05505 vuint32_t M4WE:1; 05506 vuint32_t M3PE:1; 05507 vuint32_t M3SM:2; 05508 vuint32_t M3UM:3; 05509 vuint32_t M2PE:1; 05510 vuint32_t M2SM:2; 05511 vuint32_t M2UM:3; 05512 vuint32_t M1PE:1; 05513 vuint32_t M1SM:2; 05514 vuint32_t M1UM:3; 05515 vuint32_t M0PE:1; 05516 vuint32_t M0SM:2; 05517 vuint32_t M0UM:3; 05518 } B; 05519 } RGDAAC[16]; /* Region Descriptor Alternate Access Control n */ 05520 05521 }; /* end of MPU_tag */ 05522 /****************************************************************************/ 05523 /* MODULE : eDMA */ 05524 /****************************************************************************/ 05525 05526 /*for "standard" format TCD (when EDMA.TCD[x].CITER.E_LINK==BITER.E_LINK=0) */ 05527 struct EDMA_TCD_STD_tag { 05528 05529 vuint32_t SADDR; /* source address */ 05530 05531 vuint16_t SMOD:5; /* source address modulo */ 05532 vuint16_t SSIZE:3; /* source transfer size */ 05533 vuint16_t DMOD:5; /* destination address modulo */ 05534 vuint16_t DSIZE:3; /* destination transfer size */ 05535 vint16_t SOFF; /* signed source address offset */ 05536 05537 vuint32_t NBYTES; /* inner (“minor”) byte count */ 05538 05539 vint32_t SLAST; /* last destination address adjustment, or 05540 scatter/gather address (if e_sg = 1) */ 05541 05542 vuint32_t DADDR; /* destination address */ 05543 05544 vuint16_t CITERE_LINK:1; 05545 vuint16_t CITER:15; 05546 05547 vint16_t DOFF; /* signed destination address offset */ 05548 05549 vint32_t DLAST_SGA; 05550 05551 vuint16_t BITERE_LINK:1; /* beginning ("major") iteration count */ 05552 vuint16_t BITER:15; 05553 05554 vuint16_t BWC:2; /* bandwidth control */ 05555 vuint16_t MAJORLINKCH:6; /* enable channel-to-channel link */ 05556 vuint16_t DONE:1; /* channel done */ 05557 vuint16_t ACTIVE:1; /* channel active */ 05558 vuint16_t MAJORE_LINK:1; /* enable channel-to-channel link */ 05559 vuint16_t E_SG:1; /* enable scatter/gather descriptor */ 05560 vuint16_t D_REQ:1; /* disable ipd_req when done */ 05561 vuint16_t INT_HALF:1; /* interrupt on citer = (biter >> 1) */ 05562 vuint16_t INT_MAJ:1; /* interrupt on major loop completion */ 05563 vuint16_t START:1; /* explicit channel start */ 05564 05565 }; /* end of EDMA_TCD_STD_tag */ 05566 05567 /*for "channel link" format TCD (when EDMA.TCD[x].CITER.E_LINK==BITER.E_LINK=1)*/ 05568 struct EDMA_TCD_CHLINK_tag { 05569 05570 vuint32_t SADDR; /* source address */ 05571 05572 vuint16_t SMOD:5; /* source address modulo */ 05573 vuint16_t SSIZE:3; /* source transfer size */ 05574 vuint16_t DMOD:5; /* destination address modulo */ 05575 vuint16_t DSIZE:3; /* destination transfer size */ 05576 vint16_t SOFF; /* signed source address offset */ 05577 05578 vuint32_t NBYTES; /* inner (“minor”) byte count */ 05579 05580 vint32_t SLAST; /* last destination address adjustment, or 05581 scatter/gather address (if e_sg = 1) */ 05582 05583 vuint32_t DADDR; /* destination address */ 05584 05585 vuint16_t CITERE_LINK:1; 05586 vuint16_t CITERLINKCH:6; 05587 vuint16_t CITER:9; 05588 05589 vint16_t DOFF; /* signed destination address offset */ 05590 05591 vint32_t DLAST_SGA; 05592 05593 vuint16_t BITERE_LINK:1; /* beginning (“major”) iteration count */ 05594 vuint16_t BITERLINKCH:6; 05595 vuint16_t BITER:9; 05596 05597 vuint16_t BWC:2; /* bandwidth control */ 05598 vuint16_t MAJORLINKCH:6; /* enable channel-to-channel link */ 05599 vuint16_t DONE:1; /* channel done */ 05600 vuint16_t ACTIVE:1; /* channel active */ 05601 vuint16_t MAJORE_LINK:1; /* enable channel-to-channel link */ 05602 vuint16_t E_SG:1; /* enable scatter/gather descriptor */ 05603 vuint16_t D_REQ:1; /* disable ipd_req when done */ 05604 vuint16_t INT_HALF:1; /* interrupt on citer = (biter >> 1) */ 05605 vuint16_t INT_MAJ:1; /* interrupt on major loop completion */ 05606 vuint16_t START:1; /* explicit channel start */ 05607 05608 }; /* end of EDMA_TCD_CHLINK_tag */ 05609 05610 struct EDMA_tag { 05611 union { 05612 vuint32_t R; 05613 struct { 05614 vuint32_t:29; 05615 vuint32_t ERCA:1; 05616 vuint32_t EDBG:1; 05617 vuint32_t:1; 05618 } B; 05619 } CR; /* Control Register */ 05620 05621 union { 05622 vuint32_t R; 05623 struct { 05624 vuint32_t VLD:1; 05625 vuint32_t:15; 05626 vuint32_t GPE:1; 05627 vuint32_t CPE:1; 05628 vuint32_t ERRCHN:6; 05629 vuint32_t SAE:1; 05630 vuint32_t SOE:1; 05631 vuint32_t DAE:1; 05632 vuint32_t DOE:1; 05633 vuint32_t NCE:1; 05634 vuint32_t SGE:1; 05635 vuint32_t SBE:1; 05636 vuint32_t DBE:1; 05637 } B; 05638 } ESR; /* Error Status Register */ 05639 05640 int16_t EDMA_reserved1[3]; /* (0x0E - 0x08)/2 = 0x03 */ 05641 05642 union { 05643 vuint16_t R; 05644 struct { 05645 vuint16_t ERQ15:1; 05646 vuint16_t ERQ14:1; 05647 vuint16_t ERQ13:1; 05648 vuint16_t ERQ12:1; 05649 vuint16_t ERQ11:1; 05650 vuint16_t ERQ10:1; 05651 vuint16_t ERQ09:1; 05652 vuint16_t ERQ08:1; 05653 vuint16_t ERQ07:1; 05654 vuint16_t ERQ06:1; 05655 vuint16_t ERQ05:1; 05656 vuint16_t ERQ04:1; 05657 vuint16_t ERQ03:1; 05658 vuint16_t ERQ02:1; 05659 vuint16_t ERQ01:1; 05660 vuint16_t ERQ00:1; 05661 } B; 05662 } ERQRL; /* DMA Enable Request Register Low */ 05663 05664 int16_t EDMA_reserved2[3]; /* (0x16 - 0x10)/2 = 0x03 */ 05665 05666 union { 05667 vuint16_t R; 05668 struct { 05669 vuint16_t EEI15:1; 05670 vuint16_t EEI14:1; 05671 vuint16_t EEI13:1; 05672 vuint16_t EEI12:1; 05673 vuint16_t EEI11:1; 05674 vuint16_t EEI10:1; 05675 vuint16_t EEI09:1; 05676 vuint16_t EEI08:1; 05677 vuint16_t EEI07:1; 05678 vuint16_t EEI06:1; 05679 vuint16_t EEI05:1; 05680 vuint16_t EEI04:1; 05681 vuint16_t EEI03:1; 05682 vuint16_t EEI02:1; 05683 vuint16_t EEI01:1; 05684 vuint16_t EEI00:1; 05685 } B; 05686 } EEIRL; /* DMA Enable Error Interrupt Register Low */ 05687 05688 union { 05689 vuint8_t R; 05690 struct { 05691 vuint8_t:1; 05692 vuint8_t SERQ:7; 05693 } B; 05694 } SERQR; /* DMA Set Enable Request Register */ 05695 05696 union { 05697 vuint8_t R; 05698 struct { 05699 vuint8_t:1; 05700 vuint8_t CERQ:7; 05701 } B; 05702 } CERQR; /* DMA Clear Enable Request Register */ 05703 05704 union { 05705 vuint8_t R; 05706 struct { 05707 vuint8_t:1; 05708 vuint8_t SEEI:7; 05709 } B; 05710 } SEEIR; /* DMA Set Enable Error Interrupt Register */ 05711 05712 union { 05713 vuint8_t R; 05714 struct { 05715 vuint8_t:1; 05716 vuint8_t CEEI:7; 05717 } B; 05718 } CEEIR; /* DMA Clear Enable Error Interrupt Register */ 05719 05720 union { 05721 vuint8_t R; 05722 struct { 05723 vuint8_t:1; 05724 vuint8_t CINT:7; 05725 } B; 05726 } CIRQR; /* DMA Clear Interrupt Request Register */ 05727 05728 union { 05729 vuint8_t R; 05730 struct { 05731 vuint8_t:1; 05732 vuint8_t CER:7; 05733 } B; 05734 } CERR; /* DMA Clear error Register */ 05735 05736 union { 05737 vuint8_t R; 05738 struct { 05739 vuint8_t:1; 05740 vuint8_t SSB:7; 05741 } B; 05742 } SSBR; /* Set Start Bit Register */ 05743 05744 union { 05745 vuint8_t R; 05746 struct { 05747 vuint8_t:1; 05748 vuint8_t CDSB:7; 05749 } B; 05750 } CDSBR; /* Clear Done Status Bit Register */ 05751 05752 int16_t EDMA_reserved3[3]; /* (0x26 - 0x20)/2 = 0x03 */ 05753 05754 union { 05755 vuint16_t R; 05756 struct { 05757 vuint16_t INT15:1; 05758 vuint16_t INT14:1; 05759 vuint16_t INT13:1; 05760 vuint16_t INT12:1; 05761 vuint16_t INT11:1; 05762 vuint16_t INT10:1; 05763 vuint16_t INT09:1; 05764 vuint16_t INT08:1; 05765 vuint16_t INT07:1; 05766 vuint16_t INT06:1; 05767 vuint16_t INT05:1; 05768 vuint16_t INT04:1; 05769 vuint16_t INT03:1; 05770 vuint16_t INT02:1; 05771 vuint16_t INT01:1; 05772 vuint16_t INT00:1; 05773 } B; 05774 } IRQRL; /* DMA Interrupt Request Low */ 05775 05776 int16_t EDMA_reserved4[3]; /* (0x2E - 0x28)/2 = 0x03 */ 05777 05778 union { 05779 vuint16_t R; 05780 struct { 05781 vuint16_t ERR15:1; 05782 vuint16_t ERR14:1; 05783 vuint16_t ERR13:1; 05784 vuint16_t ERR12:1; 05785 vuint16_t ERR11:1; 05786 vuint16_t ERR10:1; 05787 vuint16_t ERR09:1; 05788 vuint16_t ERR08:1; 05789 vuint16_t ERR07:1; 05790 vuint16_t ERR06:1; 05791 vuint16_t ERR05:1; 05792 vuint16_t ERR04:1; 05793 vuint16_t ERR03:1; 05794 vuint16_t ERR02:1; 05795 vuint16_t ERR01:1; 05796 vuint16_t ERR00:1; 05797 } B; 05798 } ERL; /* DMA Error Low */ 05799 05800 int16_t EDMA_reserved5[3]; /* (0x36 - 0x30)/2 = 0x03 */ 05801 05802 union { 05803 vuint16_t R; 05804 struct { 05805 vuint16_t HRS15:1; 05806 vuint16_t HRS14:1; 05807 vuint16_t HRS13:1; 05808 vuint16_t HRS12:1; 05809 vuint16_t HRS11:1; 05810 vuint16_t HRS10:1; 05811 vuint16_t HRS09:1; 05812 vuint16_t HRS08:1; 05813 vuint16_t HRS07:1; 05814 vuint16_t HRS06:1; 05815 vuint16_t HRS05:1; 05816 vuint16_t HRS04:1; 05817 vuint16_t HRS03:1; 05818 vuint16_t HRS02:1; 05819 vuint16_t HRS01:1; 05820 vuint16_t HRS00:1; 05821 } B; 05822 } HRSL; /* DMA Hardware Request Status Low */ 05823 05824 uint32_t edma_reserved1[50]; /* (0x100 - 0x038)/4 = 0x32 */ 05825 05826 union { 05827 vuint8_t R; 05828 struct { 05829 vuint8_t ECP:1; 05830 vuint8_t DPA:1; 05831 vuint8_t GRPPRI:2; 05832 vuint8_t CHPRI:4; 05833 } B; 05834 } CPR[16]; /* Channel n Priority */ 05835 05836 uint32_t edma_reserved2[956]; /* (0x1000 - 0x0110)/4 = 0x3BC */ 05837 05838 struct EDMA_TCD_STD_tag TCD[16]; 05839 /* struct EDMA_TCD_CHLINK_tag TCD[16]; */ 05840 05841 }; /* end of EDMA_tag */ 05842 /****************************************************************************/ 05843 /* MODULE : INTC */ 05844 /****************************************************************************/ 05845 struct INTC_tag { 05846 union { 05847 vuint32_t R; 05848 struct { 05849 vuint32_t:26; 05850 vuint32_t VTES:1; 05851 vuint32_t:4; 05852 vuint32_t HVEN:1; 05853 } B; 05854 } MCR; /* Module Configuration Register */ 05855 05856 int32_t INTC_reserved1; /* (0x008 - 0x004)/4 = 0x01 */ 05857 05858 union { 05859 vuint32_t R; 05860 struct { 05861 vuint32_t:28; 05862 vuint32_t PRI:4; 05863 } B; 05864 } CPR; /* Current Priority Register */ 05865 05866 int32_t INTC_reserved2; /* (0x010 - 0x00C)/4 = 0x01 */ 05867 05868 union { 05869 vuint32_t R; 05870 struct { 05871 vuint32_t VTBA:21; 05872 vuint32_t INTVEC:9; 05873 vuint32_t:2; 05874 } B; 05875 } IACKR; /* Interrupt Acknowledge Register */ 05876 05877 int32_t INTC_reserved3; /* (0x018 - 0x014)/4 = 0x01 */ 05878 05879 union { 05880 vuint32_t R; 05881 struct { 05882 vuint32_t:32; 05883 } B; 05884 } EOIR; /* End of Interrupt Register */ 05885 05886 int32_t INTC_reserved4; /* (0x020 - 0x01C)/4 = 0x01 */ 05887 05888 union { 05889 vuint8_t R; 05890 struct { 05891 vuint8_t:6; 05892 vuint8_t SET:1; 05893 vuint8_t CLR:1; 05894 } B; 05895 } SSCIR[8]; /* Software Set/Clear Interruput Register */ 05896 05897 uint32_t intc_reserved5[6]; /* (0x040 - 0x028)/4 = 0x06 */ 05898 05899 union { 05900 vuint8_t R; 05901 struct { 05902 vuint8_t:4; 05903 vuint8_t PRI:4; 05904 } B; 05905 } PSR[512]; /* Software Set/Clear Interrupt Register */ 05906 05907 }; /* end of INTC_tag */ 05908 /****************************************************************************/ 05909 /* MODULE : DSPI */ 05910 /****************************************************************************/ 05911 struct DSPI_tag { 05912 union { 05913 vuint32_t R; 05914 struct { 05915 vuint32_t MSTR:1; 05916 vuint32_t CONT_SCKE:1; 05917 vuint32_t DCONF:2; 05918 vuint32_t FRZ:1; 05919 vuint32_t MTFE:1; 05920 vuint32_t PCSSE:1; 05921 vuint32_t ROOE:1; 05922 vuint32_t PCSIS7:1; 05923 vuint32_t PCSIS6:1; 05924 vuint32_t PCSIS5:1; 05925 vuint32_t PCSIS4:1; 05926 vuint32_t PCSIS3:1; 05927 vuint32_t PCSIS2:1; 05928 vuint32_t PCSIS1:1; 05929 vuint32_t PCSIS0:1; 05930 vuint32_t DOZE:1; 05931 vuint32_t MDIS:1; 05932 vuint32_t DIS_TXF:1; 05933 vuint32_t DIS_RXF:1; 05934 vuint32_t CLR_TXF:1; 05935 vuint32_t CLR_RXF:1; 05936 vuint32_t SMPL_PT:2; 05937 vuint32_t:7; 05938 vuint32_t HALT:1; 05939 } B; 05940 } MCR; /* Module Configuration Register */ 05941 05942 uint32_t dspi_reserved1; 05943 05944 union { 05945 vuint32_t R; 05946 struct { 05947 vuint32_t TCNT:16; 05948 vuint32_t:16; 05949 } B; 05950 } TCR; 05951 05952 union { 05953 vuint32_t R; 05954 struct { 05955 vuint32_t DBR:1; 05956 vuint32_t FMSZ:4; 05957 vuint32_t CPOL:1; 05958 vuint32_t CPHA:1; 05959 vuint32_t LSBFE:1; 05960 vuint32_t PCSSCK:2; 05961 vuint32_t PASC:2; 05962 vuint32_t PDT:2; 05963 vuint32_t PBR:2; 05964 vuint32_t CSSCK:4; 05965 vuint32_t ASC:4; 05966 vuint32_t DT:4; 05967 vuint32_t BR:4; 05968 } B; 05969 } CTAR[8]; /* Clock and Transfer Attributes Registers */ 05970 05971 union { 05972 vuint32_t R; 05973 struct { 05974 vuint32_t TCF:1; 05975 vuint32_t TXRXS:1; 05976 vuint32_t:1; 05977 vuint32_t EOQF:1; 05978 vuint32_t TFUF:1; 05979 vuint32_t:1; 05980 vuint32_t TFFF:1; 05981 vuint32_t:5; 05982 vuint32_t RFOF:1; 05983 vuint32_t:1; 05984 vuint32_t RFDF:1; 05985 vuint32_t:1; 05986 vuint32_t TXCTR:4; 05987 vuint32_t TXNXTPTR:4; 05988 vuint32_t RXCTR:4; 05989 vuint32_t POPNXTPTR:4; 05990 } B; 05991 } SR; /* Status Register */ 05992 05993 union { 05994 vuint32_t R; 05995 struct { 05996 vuint32_t TCFRE:1; 05997 vuint32_t:2; 05998 vuint32_t EOQFRE:1; 05999 vuint32_t TFUFRE:1; 06000 vuint32_t:1; 06001 vuint32_t TFFFRE:1; 06002 vuint32_t TFFFDIRS:1; 06003 vuint32_t:4; 06004 vuint32_t RFOFRE:1; 06005 vuint32_t:1; 06006 vuint32_t RFDFRE:1; 06007 vuint32_t RFDFDIRS:1; 06008 vuint32_t:16; 06009 } B; 06010 } RSER; /* DMA/Interrupt Request Select and Enable Register */ 06011 06012 union { 06013 vuint32_t R; 06014 struct { 06015 vuint32_t CONT:1; 06016 vuint32_t CTAS:3; 06017 vuint32_t EOQ:1; 06018 vuint32_t CTCNT:1; 06019 vuint32_t:2; 06020 vuint32_t PCS7:1; 06021 vuint32_t PCS6:1; 06022 vuint32_t PCS5:1; 06023 vuint32_t PCS4:1; 06024 vuint32_t PCS3:1; 06025 vuint32_t PCS2:1; 06026 vuint32_t PCS1:1; 06027 vuint32_t PCS0:1; 06028 vuint32_t TXDATA:16; 06029 } B; 06030 } PUSHR; /* PUSH TX FIFO Register */ 06031 06032 union { 06033 vuint32_t R; 06034 struct { 06035 vuint32_t:16; 06036 vuint32_t RXDATA:16; 06037 } B; 06038 } POPR; /* POP RX FIFO Register */ 06039 06040 union { 06041 vuint32_t R; 06042 struct { 06043 vuint32_t TXCMD:16; 06044 vuint32_t TXDATA:16; 06045 } B; 06046 } TXFR[4]; /* Transmit FIFO Registers */ 06047 06048 vuint32_t DSPI_reserved_txf[12]; 06049 06050 union { 06051 vuint32_t R; 06052 struct { 06053 vuint32_t:16; 06054 vuint32_t RXDATA:16; 06055 } B; 06056 } RXFR[4]; /* Transmit FIFO Registers */ 06057 06058 vuint32_t DSPI_reserved_rxf[12]; 06059 06060 union { 06061 vuint32_t R; 06062 struct { 06063 vuint32_t MTOE:1; 06064 vuint32_t:1; 06065 vuint32_t MTOCNT:6; 06066 vuint32_t:4; 06067 vuint32_t TXSS:1; 06068 vuint32_t TPOL:1; 06069 vuint32_t TRRE:1; 06070 vuint32_t CID:1; 06071 vuint32_t DCONT:1; 06072 vuint32_t DSICTAS:3; 06073 vuint32_t:6; 06074 vuint32_t DPCS5:1; 06075 vuint32_t DPCS4:1; 06076 vuint32_t DPCS3:1; 06077 vuint32_t DPCS2:1; 06078 vuint32_t DPCS1:1; 06079 vuint32_t DPCS0:1; 06080 } B; 06081 } DSICR; /* DSI Configuration Register */ 06082 06083 union { 06084 vuint32_t R; 06085 struct { 06086 vuint32_t:16; 06087 vuint32_t SER_DATA:16; 06088 } B; 06089 } SDR; /* DSI Serialization Data Register */ 06090 06091 union { 06092 vuint32_t R; 06093 struct { 06094 vuint32_t:16; 06095 vuint32_t ASER_DATA:16; 06096 } B; 06097 } ASDR; /* DSI Alternate Serialization Data Register */ 06098 06099 union { 06100 vuint32_t R; 06101 struct { 06102 vuint32_t:16; 06103 vuint32_t COMP_DATA:16; 06104 } B; 06105 } COMPR; /* DSI Transmit Comparison Register */ 06106 06107 union { 06108 vuint32_t R; 06109 struct { 06110 vuint32_t:16; 06111 vuint32_t DESER_DATA:16; 06112 } B; 06113 } DDR; /* DSI deserialization Data Register */ 06114 06115 }; /* end of DSPI_tag */ 06116 /****************************************************************************/ 06117 /* MODULE : FlexCAN */ 06118 /****************************************************************************/ 06119 struct FLEXCAN_BUF_t { 06120 union { 06121 vuint32_t R; 06122 struct { 06123 vuint32_t:4; 06124 vuint32_t CODE:4; 06125 vuint32_t:1; 06126 vuint32_t SRR:1; 06127 vuint32_t IDE:1; 06128 vuint32_t RTR:1; 06129 vuint32_t LENGTH:4; 06130 vuint32_t TIMESTAMP:16; 06131 } B; 06132 } CS; 06133 06134 union { 06135 vuint32_t R; 06136 struct { 06137 vuint32_t PRIO:3; 06138 vuint32_t STD_ID:11; 06139 vuint32_t EXT_ID:18; 06140 } B; 06141 } ID; 06142 06143 union { 06144 /*vuint8_t B[8]; *//* Data buffer in Bytes (8 bits) */ 06145 /*vuint16_t H[4]; *//* Data buffer in Half-words (16 bits) */ 06146 vuint32_t W[2]; /* Data buffer in words (32 bits) */ 06147 /*vuint32_t R[2]; *//* Data buffer in words (32 bits) */ 06148 } DATA; 06149 06150 }; /* end of FLEXCAN_BUF_t */ 06151 06152 struct FLEXCAN_RXFIFO_t { 06153 union { 06154 vuint32_t R; 06155 struct { 06156 vuint32_t:9; 06157 vuint32_t SRR:1; 06158 vuint32_t IDE:1; 06159 vuint32_t RTR:1; 06160 vuint32_t LENGTH:4; 06161 vuint32_t TIMESTAMP:16; 06162 } B; 06163 } CS; 06164 06165 union { 06166 vuint32_t R; 06167 struct { 06168 vuint32_t:3; 06169 vuint32_t STD_ID:11; 06170 vuint32_t EXT_ID:18; 06171 } B; 06172 } ID; 06173 06174 union { 06175 /*vuint8_t B[8]; *//* Data buffer in Bytes (8 bits) */ 06176 /*vuint16_t H[4]; *//* Data buffer in Half-words (16 bits) */ 06177 vuint32_t W[2]; /* Data buffer in words (32 bits) */ 06178 /*vuint32_t R[2]; *//* Data buffer in words (32 bits) */ 06179 } DATA; 06180 06181 uint32_t FLEXCAN_RXFIFO_reserved[20]; /* {0x00E0-0x0090}/0x4 = 0x14 */ 06182 06183 union { 06184 vuint32_t R; 06185 } IDTABLE[8]; 06186 06187 }; /* end of FLEXCAN_RXFIFO_t */ 06188 06189 struct FLEXCAN_tag { 06190 union { 06191 vuint32_t R; 06192 struct { 06193 vuint32_t MDIS:1; 06194 vuint32_t FRZ:1; 06195 vuint32_t FEN:1; 06196 vuint32_t HALT:1; 06197 vuint32_t NOTRDY:1; 06198 vuint32_t WAKMSK:1; 06199 vuint32_t SOFTRST:1; 06200 vuint32_t FRZACK:1; 06201 vuint32_t SUPV:1; 06202 vuint32_t SLFWAK:1; 06203 vuint32_t WRNEN:1; 06204 vuint32_t LPMACK:1; 06205 vuint32_t WAKSRC:1; 06206 vuint32_t DOZE:1; 06207 vuint32_t SRXDIS:1; 06208 vuint32_t BCC:1; 06209 vuint32_t:2; 06210 vuint32_t LPRIO_EN:1; 06211 vuint32_t AEN:1; 06212 vuint32_t:2; 06213 vuint32_t IDAM:2; 06214 vuint32_t:2; 06215 vuint32_t MAXMB:6; 06216 } B; 06217 } MCR; /* Module Configuration Register */ 06218 06219 union { 06220 vuint32_t R; 06221 struct { 06222 vuint32_t PRESDIV:8; 06223 vuint32_t RJW:2; 06224 vuint32_t PSEG1:3; 06225 vuint32_t PSEG2:3; 06226 vuint32_t BOFFMSK:1; 06227 vuint32_t ERRMSK:1; 06228 vuint32_t CLKSRC:1; 06229 vuint32_t LPB:1; 06230 vuint32_t TWRNMSK:1; 06231 vuint32_t RWRNMSK:1; 06232 vuint32_t:2; 06233 vuint32_t SMP:1; 06234 vuint32_t BOFFREC:1; 06235 vuint32_t TSYN:1; 06236 vuint32_t LBUF:1; 06237 vuint32_t LOM:1; 06238 vuint32_t PROPSEG:3; 06239 } B; 06240 } CR; /* Control Register */ 06241 06242 union { 06243 vuint32_t R; 06244 } TIMER; /* Free Running Timer */ 06245 06246 uint32_t FLEXCAN_reserved1; 06247 06248 union { 06249 vuint32_t R; 06250 struct { 06251 vuint32_t MI:32; 06252 } B; 06253 } RXGMASK; /* RX Global Mask */ 06254 06255 union { 06256 vuint32_t R; 06257 struct { 06258 vuint32_t MI:32; 06259 } B; 06260 } RX14MASK; /* RX 14 Mask */ 06261 06262 union { 06263 vuint32_t R; 06264 struct { 06265 vuint32_t MI:32; 06266 } B; 06267 } RX15MASK; /* RX 15 Mask */ 06268 06269 union { 06270 vuint32_t R; 06271 struct { 06272 vuint32_t:16; 06273 vuint32_t RXECNT:8; 06274 vuint32_t TXECNT:8; 06275 } B; 06276 } ECR; /* Error Counter Register */ 06277 06278 union { 06279 vuint32_t R; 06280 struct { 06281 vuint32_t:14; 06282 vuint32_t TWRNINT:1; 06283 vuint32_t RWRNINT:1; 06284 vuint32_t BIT1ERR:1; 06285 vuint32_t BIT0ERR:1; 06286 vuint32_t ACKERR:1; 06287 vuint32_t CRCERR:1; 06288 vuint32_t FRMERR:1; 06289 vuint32_t STFERR:1; 06290 vuint32_t TXWRN:1; 06291 vuint32_t RXWRN:1; 06292 vuint32_t IDLE:1; 06293 vuint32_t TXRX:1; 06294 vuint32_t FLTCONF:2; 06295 vuint32_t:1; 06296 vuint32_t BOFFINT:1; 06297 vuint32_t ERRINT:1; 06298 vuint32_t WAKINT:1; 06299 } B; 06300 } ESR; /* Error and Status Register */ 06301 06302 union { 06303 vuint32_t R; 06304 struct { 06305 vuint32_t BUF63M:1; 06306 vuint32_t BUF62M:1; 06307 vuint32_t BUF61M:1; 06308 vuint32_t BUF60M:1; 06309 vuint32_t BUF59M:1; 06310 vuint32_t BUF58M:1; 06311 vuint32_t BUF57M:1; 06312 vuint32_t BUF56M:1; 06313 vuint32_t BUF55M:1; 06314 vuint32_t BUF54M:1; 06315 vuint32_t BUF53M:1; 06316 vuint32_t BUF52M:1; 06317 vuint32_t BUF51M:1; 06318 vuint32_t BUF50M:1; 06319 vuint32_t BUF49M:1; 06320 vuint32_t BUF48M:1; 06321 vuint32_t BUF47M:1; 06322 vuint32_t BUF46M:1; 06323 vuint32_t BUF45M:1; 06324 vuint32_t BUF44M:1; 06325 vuint32_t BUF43M:1; 06326 vuint32_t BUF42M:1; 06327 vuint32_t BUF41M:1; 06328 vuint32_t BUF40M:1; 06329 vuint32_t BUF39M:1; 06330 vuint32_t BUF38M:1; 06331 vuint32_t BUF37M:1; 06332 vuint32_t BUF36M:1; 06333 vuint32_t BUF35M:1; 06334 vuint32_t BUF34M:1; 06335 vuint32_t BUF33M:1; 06336 vuint32_t BUF32M:1; 06337 } B; 06338 } IMRH; /* Interruput Masks Register */ 06339 06340 union { 06341 vuint32_t R; 06342 struct { 06343 vuint32_t BUF31M:1; 06344 vuint32_t BUF30M:1; 06345 vuint32_t BUF29M:1; 06346 vuint32_t BUF28M:1; 06347 vuint32_t BUF27M:1; 06348 vuint32_t BUF26M:1; 06349 vuint32_t BUF25M:1; 06350 vuint32_t BUF24M:1; 06351 vuint32_t BUF23M:1; 06352 vuint32_t BUF22M:1; 06353 vuint32_t BUF21M:1; 06354 vuint32_t BUF20M:1; 06355 vuint32_t BUF19M:1; 06356 vuint32_t BUF18M:1; 06357 vuint32_t BUF17M:1; 06358 vuint32_t BUF16M:1; 06359 vuint32_t BUF15M:1; 06360 vuint32_t BUF14M:1; 06361 vuint32_t BUF13M:1; 06362 vuint32_t BUF12M:1; 06363 vuint32_t BUF11M:1; 06364 vuint32_t BUF10M:1; 06365 vuint32_t BUF09M:1; 06366 vuint32_t BUF08M:1; 06367 vuint32_t BUF07M:1; 06368 vuint32_t BUF06M:1; 06369 vuint32_t BUF05M:1; 06370 vuint32_t BUF04M:1; 06371 vuint32_t BUF03M:1; 06372 vuint32_t BUF02M:1; 06373 vuint32_t BUF01M:1; 06374 vuint32_t BUF00M:1; 06375 } B; 06376 } IMRL; /* Interruput Masks Register */ 06377 06378 union { 06379 vuint32_t R; 06380 struct { 06381 vuint32_t BUF63I:1; 06382 vuint32_t BUF62I:1; 06383 vuint32_t BUF61I:1; 06384 vuint32_t BUF60I:1; 06385 vuint32_t BUF59I:1; 06386 vuint32_t BUF58I:1; 06387 vuint32_t BUF57I:1; 06388 vuint32_t BUF56I:1; 06389 vuint32_t BUF55I:1; 06390 vuint32_t BUF54I:1; 06391 vuint32_t BUF53I:1; 06392 vuint32_t BUF52I:1; 06393 vuint32_t BUF51I:1; 06394 vuint32_t BUF50I:1; 06395 vuint32_t BUF49I:1; 06396 vuint32_t BUF48I:1; 06397 vuint32_t BUF47I:1; 06398 vuint32_t BUF46I:1; 06399 vuint32_t BUF45I:1; 06400 vuint32_t BUF44I:1; 06401 vuint32_t BUF43I:1; 06402 vuint32_t BUF42I:1; 06403 vuint32_t BUF41I:1; 06404 vuint32_t BUF40I:1; 06405 vuint32_t BUF39I:1; 06406 vuint32_t BUF38I:1; 06407 vuint32_t BUF37I:1; 06408 vuint32_t BUF36I:1; 06409 vuint32_t BUF35I:1; 06410 vuint32_t BUF34I:1; 06411 vuint32_t BUF33I:1; 06412 vuint32_t BUF32I:1; 06413 } B; 06414 } IFRH; /* Interruput Flag Register */ 06415 06416 union { 06417 vuint32_t R; 06418 struct { 06419 vuint32_t BUF31I:1; 06420 vuint32_t BUF30I:1; 06421 vuint32_t BUF29I:1; 06422 vuint32_t BUF28I:1; 06423 vuint32_t BUF27I:1; 06424 vuint32_t BUF26I:1; 06425 vuint32_t BUF25I:1; 06426 vuint32_t BUF24I:1; 06427 vuint32_t BUF23I:1; 06428 vuint32_t BUF22I:1; 06429 vuint32_t BUF21I:1; 06430 vuint32_t BUF20I:1; 06431 vuint32_t BUF19I:1; 06432 vuint32_t BUF18I:1; 06433 vuint32_t BUF17I:1; 06434 vuint32_t BUF16I:1; 06435 vuint32_t BUF15I:1; 06436 vuint32_t BUF14I:1; 06437 vuint32_t BUF13I:1; 06438 vuint32_t BUF12I:1; 06439 vuint32_t BUF11I:1; 06440 vuint32_t BUF10I:1; 06441 vuint32_t BUF09I:1; 06442 vuint32_t BUF08I:1; 06443 vuint32_t BUF07I:1; 06444 vuint32_t BUF06I:1; 06445 vuint32_t BUF05I:1; 06446 vuint32_t BUF04I:1; 06447 vuint32_t BUF03I:1; 06448 vuint32_t BUF02I:1; 06449 vuint32_t BUF01I:1; 06450 vuint32_t BUF00I:1; 06451 } B; 06452 } IFRL; /* Interruput Flag Register */ 06453 06454 uint32_t FLEXCAN_reserved2[19]; /* {0x0080-0x0034}/0x4 = 0x13 */ 06455 06456 /****************************************************************************/ 06457 /* Use either Standard Buffer Structure OR RX FIFO and Buffer Structure */ 06458 /****************************************************************************/ 06459 /* Standard Buffer Structure */ 06460 struct FLEXCAN_BUF_t BUF[64]; 06461 06462 /* RX FIFO and Buffer Structure */ 06463 /*struct FLEXCAN_RXFIFO_t RXFIFO; */ 06464 /*struct FLEXCAN_BUF_t BUF[56]; */ 06465 /****************************************************************************/ 06466 06467 uint32_t FLEXCAN_reserved3[256]; /* {0x0880-0x0480}/0x4 = 0x100 */ 06468 06469 union { 06470 vuint32_t R; 06471 struct { 06472 vuint32_t MI:32; 06473 } B; 06474 } RXIMR[64]; /* RX Individual Mask Registers */ 06475 06476 }; /* end of FLEXCAN_tag */ 06477 /****************************************************************************/ 06478 /* MODULE : DMAMUX */ 06479 /****************************************************************************/ 06480 struct DMAMUX_tag { 06481 union { 06482 vuint8_t R; 06483 struct { 06484 vuint8_t ENBL:1; 06485 vuint8_t TRIG:1; 06486 vuint8_t SOURCE:6; 06487 } B; 06488 } CHCONFIG[16]; /* DMA Channel Configuration Register */ 06489 06490 }; /* end of DMAMUX_tag */ 06491 /****************************************************************************/ 06492 /* MODULE : FlexRay */ 06493 /****************************************************************************/ 06494 06495 typedef union uMVR { 06496 vuint16_t R; 06497 struct { 06498 vuint16_t CHIVER:8; /* CHI Version Number */ 06499 vuint16_t PEVER:8; /* PE Version Number */ 06500 } B; 06501 } MVR_t; 06502 06503 typedef union uMCR { 06504 vuint16_t R; 06505 struct { 06506 vuint16_t MEN:1; /* module enable */ 06507 vuint16_t:1; 06508 vuint16_t SCMD:1; /* single channel mode */ 06509 vuint16_t CHB:1; /* channel B enable */ 06510 vuint16_t CHA:1; /* channel A enable */ 06511 vuint16_t SFFE:1; /* synchronization frame filter enable */ 06512 vuint16_t:5; 06513 vuint16_t CLKSEL:1; /* protocol engine clock source select */ 06514 vuint16_t PRESCALE:3; /* protocol engine clock prescaler */ 06515 vuint16_t:1; 06516 } B; 06517 } MCR_t; 06518 typedef union uSTBSCR { 06519 vuint16_t R; 06520 struct { 06521 vuint16_t WMD:1; /* write mode */ 06522 vuint16_t STBSSEL:7; /* strobe signal select */ 06523 vuint16_t:3; 06524 vuint16_t ENB:1; /* strobe signal enable */ 06525 vuint16_t:2; 06526 vuint16_t STBPSEL:2; /* strobe port select */ 06527 } B; 06528 } STBSCR_t; 06529 typedef union uSTBPCR { 06530 vuint16_t R; 06531 struct { 06532 vuint16_t:12; 06533 vuint16_t STB3EN:1; /* strobe port enable */ 06534 vuint16_t STB2EN:1; /* strobe port enable */ 06535 vuint16_t STB1EN:1; /* strobe port enable */ 06536 vuint16_t STB0EN:1; /* strobe port enable */ 06537 } B; 06538 } STBPCR_t; 06539 06540 typedef union uMBDSR { 06541 vuint16_t R; 06542 struct { 06543 vuint16_t:1; 06544 vuint16_t MBSEG2DS:7; /* message buffer segment 2 data size */ 06545 vuint16_t:1; 06546 vuint16_t MBSEG1DS:7; /* message buffer segment 1 data size */ 06547 } B; 06548 } MBDSR_t; 06549 06550 typedef union uMBSSUTR { 06551 vuint16_t R; 06552 struct { 06553 06554 vuint16_t:2; 06555 vuint16_t LAST_MB_SEG1:6; /* last message buffer control register for message buffer segment 1 */ 06556 vuint16_t:2; 06557 vuint16_t LAST_MB_UTIL:6; /* last message buffer utilized */ 06558 } B; 06559 } MBSSUTR_t; 06560 06561 typedef union uPOCR { 06562 vuint16_t R; 06563 vuint8_t byte[2]; 06564 struct { 06565 vuint16_t WME:1; /* write mode external correction command */ 06566 vuint16_t:3; 06567 vuint16_t EOC_AP:2; /* external offset correction application */ 06568 vuint16_t ERC_AP:2; /* external rate correction application */ 06569 vuint16_t BSY:1; /* command write busy / write mode command */ 06570 vuint16_t:3; 06571 vuint16_t POCCMD:4; /* protocol command */ 06572 } B; 06573 } POCR_t; 06574 /* protocol commands */ 06575 typedef union uGIFER { 06576 vuint16_t R; 06577 struct { 06578 vuint16_t MIF:1; /* module interrupt flag */ 06579 vuint16_t PRIF:1; /* protocol interrupt flag */ 06580 vuint16_t CHIF:1; /* CHI interrupt flag */ 06581 vuint16_t WKUPIF:1; /* wakeup interrupt flag */ 06582 vuint16_t FNEBIF:1; /* receive FIFO channel B not empty interrupt flag */ 06583 vuint16_t FNEAIF:1; /* receive FIFO channel A not empty interrupt flag */ 06584 vuint16_t RBIF:1; /* receive message buffer interrupt flag */ 06585 vuint16_t TBIF:1; /* transmit buffer interrupt flag */ 06586 vuint16_t MIE:1; /* module interrupt enable */ 06587 vuint16_t PRIE:1; /* protocol interrupt enable */ 06588 vuint16_t CHIE:1; /* CHI interrupt enable */ 06589 vuint16_t WKUPIE:1; /* wakeup interrupt enable */ 06590 vuint16_t FNEBIE:1; /* receive FIFO channel B not empty interrupt enable */ 06591 vuint16_t FNEAIE:1; /* receive FIFO channel A not empty interrupt enable */ 06592 vuint16_t RBIE:1; /* receive message buffer interrupt enable */ 06593 vuint16_t TBIE:1; /* transmit buffer interrupt enable */ 06594 } B; 06595 } GIFER_t; 06596 typedef union uPIFR0 { 06597 vuint16_t R; 06598 struct { 06599 vuint16_t FATLIF:1; /* fatal protocol error interrupt flag */ 06600 vuint16_t INTLIF:1; /* internal protocol error interrupt flag */ 06601 vuint16_t ILCFIF:1; /* illegal protocol configuration flag */ 06602 vuint16_t CSAIF:1; /* cold start abort interrupt flag */ 06603 vuint16_t MRCIF:1; /* missing rate correctio interrupt flag */ 06604 vuint16_t MOCIF:1; /* missing offset correctio interrupt flag */ 06605 vuint16_t CCLIF:1; /* clock correction limit reached interrupt flag */ 06606 vuint16_t MXSIF:1; /* max sync frames detected interrupt flag */ 06607 vuint16_t MTXIF:1; /* media access test symbol received flag */ 06608 vuint16_t LTXBIF:1; /* pdLatestTx violation on channel B interrupt flag */ 06609 vuint16_t LTXAIF:1; /* pdLatestTx violation on channel A interrupt flag */ 06610 vuint16_t TBVBIF:1; /* Transmission across boundary on channel B Interrupt Flag */ 06611 vuint16_t TBVAIF:1; /* Transmission across boundary on channel A Interrupt Flag */ 06612 vuint16_t TI2IF:1; /* timer 2 expired interrupt flag */ 06613 vuint16_t TI1IF:1; /* timer 1 expired interrupt flag */ 06614 vuint16_t CYSIF:1; /* cycle start interrupt flag */ 06615 } B; 06616 } PIFR0_t; 06617 typedef union uPIFR1 { 06618 vuint16_t R; 06619 struct { 06620 vuint16_t EMCIF:1; /* error mode changed interrupt flag */ 06621 vuint16_t IPCIF:1; /* illegal protocol command interrupt flag */ 06622 vuint16_t PECFIF:1; /* protocol engine communication failure interrupt flag */ 06623 vuint16_t PSCIF:1; /* Protocol State Changed Interrupt Flag */ 06624 vuint16_t SSI3IF:1; /* slot status counter incremented interrupt flag */ 06625 vuint16_t SSI2IF:1; /* slot status counter incremented interrupt flag */ 06626 vuint16_t SSI1IF:1; /* slot status counter incremented interrupt flag */ 06627 vuint16_t SSI0IF:1; /* slot status counter incremented interrupt flag */ 06628 vuint16_t:2; 06629 vuint16_t EVTIF:1; /* even cycle table written interrupt flag */ 06630 vuint16_t ODTIF:1; /* odd cycle table written interrupt flag */ 06631 vuint16_t:4; 06632 } B; 06633 } PIFR1_t; 06634 typedef union uPIER0 { 06635 vuint16_t R; 06636 struct { 06637 vuint16_t FATLIE:1; /* fatal protocol error interrupt enable */ 06638 vuint16_t INTLIE:1; /* internal protocol error interrupt interrupt enable */ 06639 vuint16_t ILCFIE:1; /* illegal protocol configuration interrupt enable */ 06640 vuint16_t CSAIE:1; /* cold start abort interrupt enable */ 06641 vuint16_t MRCIE:1; /* missing rate correctio interrupt enable */ 06642 vuint16_t MOCIE:1; /* missing offset correctio interrupt enable */ 06643 vuint16_t CCLIE:1; /* clock correction limit reached interrupt enable */ 06644 vuint16_t MXSIE:1; /* max sync frames detected interrupt enable */ 06645 vuint16_t MTXIE:1; /* media access test symbol received interrupt enable */ 06646 vuint16_t LTXBIE:1; /* pdLatestTx violation on channel B interrupt enable */ 06647 vuint16_t LTXAIE:1; /* pdLatestTx violation on channel A interrupt enable */ 06648 vuint16_t TBVBIE:1; /* Transmission across boundary on channel B Interrupt enable */ 06649 vuint16_t TBVAIE:1; /* Transmission across boundary on channel A Interrupt enable */ 06650 vuint16_t TI2IE:1; /* timer 2 expired interrupt enable */ 06651 vuint16_t TI1IE:1; /* timer 1 expired interrupt enable */ 06652 vuint16_t CYSIE:1; /* cycle start interrupt enable */ 06653 } B; 06654 } PIER0_t; 06655 typedef union uPIER1 { 06656 vuint16_t R; 06657 struct { 06658 vuint16_t EMCIE:1; /* error mode changed interrupt enable */ 06659 vuint16_t IPCIE:1; /* illegal protocol command interrupt enable */ 06660 vuint16_t PECFIE:1; /* protocol engine communication failure interrupt enable */ 06661 vuint16_t PSCIE:1; /* Protocol State Changed Interrupt enable */ 06662 vuint16_t SSI3IE:1; /* slot status counter incremented interrupt enable */ 06663 vuint16_t SSI2IE:1; /* slot status counter incremented interrupt enable */ 06664 vuint16_t SSI1IE:1; /* slot status counter incremented interrupt enable */ 06665 vuint16_t SSI0IE:1; /* slot status counter incremented interrupt enable */ 06666 vuint16_t:2; 06667 vuint16_t EVTIE:1; /* even cycle table written interrupt enable */ 06668 vuint16_t ODTIE:1; /* odd cycle table written interrupt enable */ 06669 vuint16_t:4; 06670 } B; 06671 } PIER1_t; 06672 typedef union uCHIERFR { 06673 vuint16_t R; 06674 struct { 06675 vuint16_t FRLBEF:1; /* flame lost channel B error flag */ 06676 vuint16_t FRLAEF:1; /* frame lost channel A error flag */ 06677 vuint16_t PCMIEF:1; /* command ignored error flag */ 06678 vuint16_t FOVBEF:1; /* receive FIFO overrun channel B error flag */ 06679 vuint16_t FOVAEF:1; /* receive FIFO overrun channel A error flag */ 06680 vuint16_t MSBEF:1; /* message buffer search error flag */ 06681 vuint16_t MBUEF:1; /* message buffer utilization error flag */ 06682 vuint16_t LCKEF:1; /* lock error flag */ 06683 vuint16_t DBLEF:1; /* double transmit message buffer lock error flag */ 06684 vuint16_t SBCFEF:1; /* system bus communication failure error flag */ 06685 vuint16_t FIDEF:1; /* frame ID error flag */ 06686 vuint16_t DPLEF:1; /* dynamic payload length error flag */ 06687 vuint16_t SPLEF:1; /* static payload length error flag */ 06688 vuint16_t NMLEF:1; /* network management length error flag */ 06689 vuint16_t NMFEF:1; /* network management frame error flag */ 06690 vuint16_t ILSAEF:1; /* illegal access error flag */ 06691 } B; 06692 } CHIERFR_t; 06693 typedef union uMBIVEC { 06694 vuint16_t R; 06695 struct { 06696 06697 vuint16_t:2; 06698 vuint16_t TBIVEC:6; /* transmit buffer interrupt vector */ 06699 vuint16_t:2; 06700 vuint16_t RBIVEC:6; /* receive buffer interrupt vector */ 06701 } B; 06702 } MBIVEC_t; 06703 06704 typedef union uPSR0 { 06705 vuint16_t R; 06706 struct { 06707 vuint16_t ERRMODE:2; /* error mode */ 06708 vuint16_t SLOTMODE:2; /* slot mode */ 06709 vuint16_t:1; 06710 vuint16_t PROTSTATE:3; /* protocol state */ 06711 vuint16_t SUBSTATE:4; /* protocol sub state */ 06712 vuint16_t:1; 06713 vuint16_t WAKEUPSTATUS:3; /* wakeup status */ 06714 } B; 06715 } PSR0_t; 06716 06717 /* protocol states */ 06718 /* protocol sub-states */ 06719 /* wakeup status */ 06720 typedef union uPSR1 { 06721 vuint16_t R; 06722 struct { 06723 vuint16_t CSAA:1; /* cold start attempt abort flag */ 06724 vuint16_t SCP:1; /* cold start path */ 06725 vuint16_t:1; 06726 vuint16_t REMCSAT:5; /* remanining coldstart attempts */ 06727 vuint16_t CPN:1; /* cold start noise path */ 06728 vuint16_t HHR:1; /* host halt request pending */ 06729 vuint16_t FRZ:1; /* freeze occured */ 06730 vuint16_t APTAC:5; /* allow passive to active counter */ 06731 } B; 06732 } PSR1_t; 06733 typedef union uPSR2 { 06734 vuint16_t R; 06735 struct { 06736 vuint16_t NBVB:1; /* NIT boundary violation on channel B */ 06737 vuint16_t NSEB:1; /* NIT syntax error on channel B */ 06738 vuint16_t STCB:1; /* symbol window transmit conflict on channel B */ 06739 vuint16_t SBVB:1; /* symbol window boundary violation on channel B */ 06740 vuint16_t SSEB:1; /* symbol window syntax error on channel B */ 06741 vuint16_t MTB:1; /* media access test symbol MTS received on channel B */ 06742 vuint16_t NBVA:1; /* NIT boundary violation on channel A */ 06743 vuint16_t NSEA:1; /* NIT syntax error on channel A */ 06744 vuint16_t STCA:1; /* symbol window transmit conflict on channel A */ 06745 vuint16_t SBVA:1; /* symbol window boundary violation on channel A */ 06746 vuint16_t SSEA:1; /* symbol window syntax error on channel A */ 06747 vuint16_t MTA:1; /* media access test symbol MTS received on channel A */ 06748 vuint16_t CLKCORRFAILCNT:4; /* clock correction failed counter */ 06749 } B; 06750 } PSR2_t; 06751 typedef union uPSR3 { 06752 vuint16_t R; 06753 struct { 06754 vuint16_t:2; 06755 vuint16_t WUB:1; /* wakeup symbol received on channel B */ 06756 vuint16_t ABVB:1; /* aggregated boundary violation on channel B */ 06757 vuint16_t AACB:1; /* aggregated additional communication on channel B */ 06758 vuint16_t ACEB:1; /* aggregated content error on channel B */ 06759 vuint16_t ASEB:1; /* aggregated syntax error on channel B */ 06760 vuint16_t AVFB:1; /* aggregated valid frame on channel B */ 06761 vuint16_t:2; 06762 vuint16_t WUA:1; /* wakeup symbol received on channel A */ 06763 vuint16_t ABVA:1; /* aggregated boundary violation on channel A */ 06764 vuint16_t AACA:1; /* aggregated additional communication on channel A */ 06765 vuint16_t ACEA:1; /* aggregated content error on channel A */ 06766 vuint16_t ASEA:1; /* aggregated syntax error on channel A */ 06767 vuint16_t AVFA:1; /* aggregated valid frame on channel A */ 06768 } B; 06769 } PSR3_t; 06770 typedef union uCIFRR { 06771 vuint16_t R; 06772 struct { 06773 vuint16_t:8; 06774 vuint16_t MIFR:1; /* module interrupt flag */ 06775 vuint16_t PRIFR:1; /* protocol interrupt flag */ 06776 vuint16_t CHIFR:1; /* CHI interrupt flag */ 06777 vuint16_t WUPIFR:1; /* wakeup interrupt flag */ 06778 vuint16_t FNEBIFR:1; /* receive fifo channel B no empty interrupt flag */ 06779 vuint16_t FNEAIFR:1; /* receive fifo channel A no empty interrupt flag */ 06780 vuint16_t RBIFR:1; /* receive message buffer interrupt flag */ 06781 vuint16_t TBIFR:1; /* transmit buffer interrupt flag */ 06782 } B; 06783 } CIFRR_t; 06784 typedef union uSFCNTR { 06785 vuint16_t R; 06786 struct { 06787 vuint16_t SFEVB:4; /* sync frames channel B, even cycle */ 06788 vuint16_t SFEVA:4; /* sync frames channel A, even cycle */ 06789 vuint16_t SFODB:4; /* sync frames channel B, odd cycle */ 06790 vuint16_t SFODA:4; /* sync frames channel A, odd cycle */ 06791 } B; 06792 } SFCNTR_t; 06793 06794 typedef union uSFTCCSR { 06795 vuint16_t R; 06796 struct { 06797 vuint16_t ELKT:1; /* even cycle tables lock and unlock trigger */ 06798 vuint16_t OLKT:1; /* odd cycle tables lock and unlock trigger */ 06799 vuint16_t CYCNUM:6; /* cycle number */ 06800 vuint16_t ELKS:1; /* even cycle tables lock status */ 06801 vuint16_t OLKS:1; /* odd cycle tables lock status */ 06802 vuint16_t EVAL:1; /* even cycle tables valid */ 06803 vuint16_t OVAL:1; /* odd cycle tables valid */ 06804 vuint16_t:1; 06805 vuint16_t OPT:1; /*one pair trigger */ 06806 vuint16_t SDVEN:1; /* sync frame deviation table enable */ 06807 vuint16_t SIDEN:1; /* sync frame ID table enable */ 06808 } B; 06809 } SFTCCSR_t; 06810 typedef union uSFIDRFR { 06811 vuint16_t R; 06812 struct { 06813 vuint16_t:6; 06814 vuint16_t SYNFRID:10; /* sync frame rejection ID */ 06815 } B; 06816 } SFIDRFR_t; 06817 06818 typedef union uTICCR { 06819 vuint16_t R; 06820 struct { 06821 vuint16_t:2; 06822 vuint16_t T2CFG:1; /* timer 2 configuration */ 06823 vuint16_t T2REP:1; /* timer 2 repetitive mode */ 06824 vuint16_t:1; 06825 vuint16_t T2SP:1; /* timer 2 stop */ 06826 vuint16_t T2TR:1; /* timer 2 trigger */ 06827 vuint16_t T2ST:1; /* timer 2 state */ 06828 vuint16_t:3; 06829 vuint16_t T1REP:1; /* timer 1 repetitive mode */ 06830 vuint16_t:1; 06831 vuint16_t T1SP:1; /* timer 1 stop */ 06832 vuint16_t T1TR:1; /* timer 1 trigger */ 06833 vuint16_t T1ST:1; /* timer 1 state */ 06834 06835 } B; 06836 } TICCR_t; 06837 typedef union uTI1CYSR { 06838 vuint16_t R; 06839 struct { 06840 vuint16_t:2; 06841 vuint16_t TI1CYCVAL:6; /* timer 1 cycle filter value */ 06842 vuint16_t:2; 06843 vuint16_t TI1CYCMSK:6; /* timer 1 cycle filter mask */ 06844 06845 } B; 06846 } TI1CYSR_t; 06847 06848 typedef union uSSSR { 06849 vuint16_t R; 06850 struct { 06851 vuint16_t WMD:1; /* write mode */ 06852 vuint16_t:1; 06853 vuint16_t SEL:2; /* static slot number */ 06854 vuint16_t:1; 06855 vuint16_t SLOTNUMBER:11; /* selector */ 06856 } B; 06857 } SSSR_t; 06858 06859 typedef union uSSCCR { 06860 vuint16_t R; 06861 struct { 06862 vuint16_t WMD:1; /* write mode */ 06863 vuint16_t:1; 06864 vuint16_t SEL:2; /* selector */ 06865 vuint16_t:1; 06866 vuint16_t CNTCFG:2; /* counter configuration */ 06867 vuint16_t MCY:1; /* multi cycle selection */ 06868 vuint16_t VFR:1; /* valid frame selection */ 06869 vuint16_t SYF:1; /* sync frame selection */ 06870 vuint16_t NUF:1; /* null frame selection */ 06871 vuint16_t SUF:1; /* startup frame selection */ 06872 vuint16_t STATUSMASK:4; /* slot status mask */ 06873 } B; 06874 } SSCCR_t; 06875 typedef union uSSR { 06876 vuint16_t R; 06877 struct { 06878 vuint16_t VFB:1; /* valid frame on channel B */ 06879 vuint16_t SYB:1; /* valid sync frame on channel B */ 06880 vuint16_t NFB:1; /* valid null frame on channel B */ 06881 vuint16_t SUB:1; /* valid startup frame on channel B */ 06882 vuint16_t SEB:1; /* syntax error on channel B */ 06883 vuint16_t CEB:1; /* content error on channel B */ 06884 vuint16_t BVB:1; /* boundary violation on channel B */ 06885 vuint16_t TCB:1; /* tx conflict on channel B */ 06886 vuint16_t VFA:1; /* valid frame on channel A */ 06887 vuint16_t SYA:1; /* valid sync frame on channel A */ 06888 vuint16_t NFA:1; /* valid null frame on channel A */ 06889 vuint16_t SUA:1; /* valid startup frame on channel A */ 06890 vuint16_t SEA:1; /* syntax error on channel A */ 06891 vuint16_t CEA:1; /* content error on channel A */ 06892 vuint16_t BVA:1; /* boundary violation on channel A */ 06893 vuint16_t TCA:1; /* tx conflict on channel A */ 06894 } B; 06895 } SSR_t; 06896 typedef union uMTSCFR { 06897 vuint16_t R; 06898 struct { 06899 vuint16_t MTE:1; /* media access test symbol transmission enable */ 06900 vuint16_t:1; 06901 vuint16_t CYCCNTMSK:6; /* cycle counter mask */ 06902 vuint16_t:2; 06903 vuint16_t CYCCNTVAL:6; /* cycle counter value */ 06904 } B; 06905 } MTSCFR_t; 06906 06907 typedef union uRSBIR { 06908 vuint16_t R; 06909 struct { 06910 vuint16_t WMD:1; /* write mode */ 06911 vuint16_t:1; 06912 vuint16_t SEL:2; /* selector */ 06913 vuint16_t:5; 06914 vuint16_t RSBIDX:7; /* receive shadow buffer index */ 06915 } B; 06916 } RSBIR_t; 06917 06918 typedef union uRFDSR { 06919 vuint16_t R; 06920 struct { 06921 vuint16_t FIFODEPTH:8; /* fifo depth */ 06922 vuint16_t:1; 06923 vuint16_t ENTRYSIZE:7; /* entry size */ 06924 } B; 06925 } RFDSR_t; 06926 06927 typedef union uRFRFCFR { 06928 vuint16_t R; 06929 struct { 06930 vuint16_t WMD:1; /* write mode */ 06931 vuint16_t IBD:1; /* interval boundary */ 06932 vuint16_t SEL:2; /* filter number */ 06933 vuint16_t:1; 06934 vuint16_t SID:11; /* slot ID */ 06935 } B; 06936 } RFRFCFR_t; 06937 06938 typedef union uRFRFCTR { 06939 vuint16_t R; 06940 struct { 06941 vuint16_t:4; 06942 vuint16_t F3MD:1; /* filter mode */ 06943 vuint16_t F2MD:1; /* filter mode */ 06944 vuint16_t F1MD:1; /* filter mode */ 06945 vuint16_t F0MD:1; /* filter mode */ 06946 vuint16_t:4; 06947 vuint16_t F3EN:1; /* filter enable */ 06948 vuint16_t F2EN:1; /* filter enable */ 06949 vuint16_t F1EN:1; /* filter enable */ 06950 vuint16_t F0EN:1; /* filter enable */ 06951 } B; 06952 } RFRFCTR_t; 06953 typedef union uPCR0 { 06954 vuint16_t R; 06955 struct { 06956 vuint16_t ACTION_POINT_OFFSET:6; 06957 vuint16_t STATIC_SLOT_LENGTH:10; 06958 } B; 06959 } PCR0_t; 06960 06961 typedef union uPCR1 { 06962 vuint16_t R; 06963 struct { 06964 vuint16_t:2; 06965 vuint16_t MACRO_AFTER_FIRST_STATIC_SLOT:14; 06966 } B; 06967 } PCR1_t; 06968 06969 typedef union uPCR2 { 06970 vuint16_t R; 06971 struct { 06972 vuint16_t MINISLOT_AFTER_ACTION_POINT:6; 06973 vuint16_t NUMBER_OF_STATIC_SLOTS:10; 06974 } B; 06975 } PCR2_t; 06976 06977 typedef union uPCR3 { 06978 vuint16_t R; 06979 struct { 06980 vuint16_t WAKEUP_SYMBOL_RX_LOW:6; 06981 vuint16_t MINISLOT_ACTION_POINT_OFFSET:5; 06982 vuint16_t COLDSTART_ATTEMPTS:5; 06983 } B; 06984 } PCR3_t; 06985 06986 typedef union uPCR4 { 06987 vuint16_t R; 06988 struct { 06989 vuint16_t CAS_RX_LOW_MAX:7; 06990 vuint16_t WAKEUP_SYMBOL_RX_WINDOW:9; 06991 } B; 06992 } PCR4_t; 06993 06994 typedef union uPCR5 { 06995 vuint16_t R; 06996 struct { 06997 vuint16_t TSS_TRANSMITTER:4; 06998 vuint16_t WAKEUP_SYMBOL_TX_LOW:6; 06999 vuint16_t WAKEUP_SYMBOL_RX_IDLE:6; 07000 } B; 07001 } PCR5_t; 07002 07003 typedef union uPCR6 { 07004 vuint16_t R; 07005 struct { 07006 vuint16_t:1; 07007 vuint16_t SYMBOL_WINDOW_AFTER_ACTION_POINT:8; 07008 vuint16_t MACRO_INITIAL_OFFSET_A:7; 07009 } B; 07010 } PCR6_t; 07011 07012 typedef union uPCR7 { 07013 vuint16_t R; 07014 struct { 07015 vuint16_t DECODING_CORRECTION_B:9; 07016 vuint16_t MICRO_PER_MACRO_NOM_HALF:7; 07017 } B; 07018 } PCR7_t; 07019 07020 typedef union uPCR8 { 07021 vuint16_t R; 07022 struct { 07023 vuint16_t MAX_WITHOUT_CLOCK_CORRECTION_FATAL:4; 07024 vuint16_t MAX_WITHOUT_CLOCK_CORRECTION_PASSIVE:4; 07025 vuint16_t WAKEUP_SYMBOL_TX_IDLE:8; 07026 } B; 07027 } PCR8_t; 07028 07029 typedef union uPCR9 { 07030 vuint16_t R; 07031 struct { 07032 vuint16_t MINISLOT_EXISTS:1; 07033 vuint16_t SYMBOL_WINDOW_EXISTS:1; 07034 vuint16_t OFFSET_CORRECTION_OUT:14; 07035 } B; 07036 } PCR9_t; 07037 07038 typedef union uPCR10 { 07039 vuint16_t R; 07040 struct { 07041 vuint16_t SINGLE_SLOT_ENABLED:1; 07042 vuint16_t WAKEUP_CHANNEL:1; 07043 vuint16_t MACRO_PER_CYCLE:14; 07044 } B; 07045 } PCR10_t; 07046 07047 typedef union uPCR11 { 07048 vuint16_t R; 07049 struct { 07050 vuint16_t KEY_SLOT_USED_FOR_STARTUP:1; 07051 vuint16_t KEY_SLOT_USED_FOR_SYNC:1; 07052 vuint16_t OFFSET_CORRECTION_START:14; 07053 } B; 07054 } PCR11_t; 07055 07056 typedef union uPCR12 { 07057 vuint16_t R; 07058 struct { 07059 vuint16_t ALLOW_PASSIVE_TO_ACTIVE:5; 07060 vuint16_t KEY_SLOT_HEADER_CRC:11; 07061 } B; 07062 } PCR12_t; 07063 07064 typedef union uPCR13 { 07065 vuint16_t R; 07066 struct { 07067 vuint16_t FIRST_MINISLOT_ACTION_POINT_OFFSET:6; 07068 vuint16_t STATIC_SLOT_AFTER_ACTION_POINT:10; 07069 } B; 07070 } PCR13_t; 07071 07072 typedef union uPCR14 { 07073 vuint16_t R; 07074 struct { 07075 vuint16_t RATE_CORRECTION_OUT:11; 07076 vuint16_t LISTEN_TIMEOUT_H:5; 07077 } B; 07078 } PCR14_t; 07079 07080 typedef union uPCR15 { 07081 vuint16_t R; 07082 struct { 07083 vuint16_t LISTEN_TIMEOUT_L:16; 07084 } B; 07085 } PCR15_t; 07086 07087 typedef union uPCR16 { 07088 vuint16_t R; 07089 struct { 07090 vuint16_t MACRO_INITIAL_OFFSET_B:7; 07091 vuint16_t NOISE_LISTEN_TIMEOUT_H:9; 07092 } B; 07093 } PCR16_t; 07094 07095 typedef union uPCR17 { 07096 vuint16_t R; 07097 struct { 07098 vuint16_t NOISE_LISTEN_TIMEOUT_L:16; 07099 } B; 07100 } PCR17_t; 07101 07102 typedef union uPCR18 { 07103 vuint16_t R; 07104 struct { 07105 vuint16_t WAKEUP_PATTERN:6; 07106 vuint16_t KEY_SLOT_ID:10; 07107 } B; 07108 } PCR18_t; 07109 07110 typedef union uPCR19 { 07111 vuint16_t R; 07112 struct { 07113 vuint16_t DECODING_CORRECTION_A:9; 07114 vuint16_t PAYLOAD_LENGTH_STATIC:7; 07115 } B; 07116 } PCR19_t; 07117 07118 typedef union uPCR20 { 07119 vuint16_t R; 07120 struct { 07121 vuint16_t MICRO_INITIAL_OFFSET_B:8; 07122 vuint16_t MICRO_INITIAL_OFFSET_A:8; 07123 } B; 07124 } PCR20_t; 07125 07126 typedef union uPCR21 { 07127 vuint16_t R; 07128 struct { 07129 vuint16_t EXTERN_RATE_CORRECTION:3; 07130 vuint16_t LATEST_TX:13; 07131 } B; 07132 } PCR21_t; 07133 07134 typedef union uPCR22 { 07135 vuint16_t R; 07136 struct { 07137 vuint16_t:1; 07138 vuint16_t COMP_ACCEPTED_STARTUP_RANGE_A:11; 07139 vuint16_t MICRO_PER_CYCLE_H:4; 07140 } B; 07141 } PCR22_t; 07142 07143 typedef union uPCR23 { 07144 vuint16_t R; 07145 struct { 07146 vuint16_t micro_per_cycle_l:16; 07147 } B; 07148 } PCR23_t; 07149 07150 typedef union uPCR24 { 07151 vuint16_t R; 07152 struct { 07153 vuint16_t CLUSTER_DRIFT_DAMPING:5; 07154 vuint16_t MAX_PAYLOAD_LENGTH_DYNAMIC:7; 07155 vuint16_t MICRO_PER_CYCLE_MIN_H:4; 07156 } B; 07157 } PCR24_t; 07158 07159 typedef union uPCR25 { 07160 vuint16_t R; 07161 struct { 07162 vuint16_t MICRO_PER_CYCLE_MIN_L:16; 07163 } B; 07164 } PCR25_t; 07165 07166 typedef union uPCR26 { 07167 vuint16_t R; 07168 struct { 07169 vuint16_t ALLOW_HALT_DUE_TO_CLOCK:1; 07170 vuint16_t COMP_ACCEPTED_STARTUP_RANGE_B:11; 07171 vuint16_t MICRO_PER_CYCLE_MAX_H:4; 07172 } B; 07173 } PCR26_t; 07174 07175 typedef union uPCR27 { 07176 vuint16_t R; 07177 struct { 07178 vuint16_t MICRO_PER_CYCLE_MAX_L:16; 07179 } B; 07180 } PCR27_t; 07181 07182 typedef union uPCR28 { 07183 vuint16_t R; 07184 struct { 07185 vuint16_t DYNAMIC_SLOT_IDLE_PHASE:2; 07186 vuint16_t MACRO_AFTER_OFFSET_CORRECTION:14; 07187 } B; 07188 } PCR28_t; 07189 07190 typedef union uPCR29 { 07191 vuint16_t R; 07192 struct { 07193 vuint16_t EXTERN_OFFSET_CORRECTION:3; 07194 vuint16_t MINISLOTS_MAX:13; 07195 } B; 07196 } PCR29_t; 07197 07198 typedef union uPCR30 { 07199 vuint16_t R; 07200 struct { 07201 vuint16_t:12; 07202 vuint16_t SYNC_NODE_MAX:4; 07203 } B; 07204 } PCR30_t; 07205 07206 typedef struct uMSG_BUFF_CCS { 07207 union { 07208 vuint16_t R; 07209 struct { 07210 vuint16_t:1; 07211 vuint16_t MCM:1; /* message buffer commit mode */ 07212 vuint16_t MBT:1; /* message buffer type */ 07213 vuint16_t MTD:1; /* message buffer direction */ 07214 vuint16_t CMT:1; /* commit for transmission */ 07215 vuint16_t EDT:1; /* enable / disable trigger */ 07216 vuint16_t LCKT:1; /* lock request trigger */ 07217 vuint16_t MBIE:1; /* message buffer interrupt enable */ 07218 vuint16_t:3; 07219 vuint16_t DUP:1; /* data updated */ 07220 vuint16_t DVAL:1; /* data valid */ 07221 vuint16_t EDS:1; /* lock status */ 07222 vuint16_t LCKS:1; /* enable / disable status */ 07223 vuint16_t MBIF:1; /* message buffer interrupt flag */ 07224 } B; 07225 } MBCCSR; 07226 union { 07227 vuint16_t R; 07228 struct { 07229 vuint16_t MTM:1; /* message buffer transmission mode */ 07230 vuint16_t CHNLA:1; /* channel assignement */ 07231 vuint16_t CHNLB:1; /* channel assignement */ 07232 vuint16_t CCFE:1; /* cycle counter filter enable */ 07233 vuint16_t CCFMSK:6; /* cycle counter filter mask */ 07234 vuint16_t CCFVAL:6; /* cycle counter filter value */ 07235 } B; 07236 } MBCCFR; 07237 union { 07238 vuint16_t R; 07239 struct { 07240 vuint16_t:5; 07241 vuint16_t FID:11; /* frame ID */ 07242 } B; 07243 } MBFIDR; 07244 07245 union { 07246 vuint16_t R; 07247 struct { 07248 vuint16_t:9; 07249 vuint16_t MBIDX:7; /* message buffer index */ 07250 } B; 07251 } MBIDXR; 07252 } MSG_BUFF_CCS_t; 07253 typedef union uSYSBADHR { 07254 vuint16_t R; 07255 } SYSBADHR_t; 07256 typedef union uSYSBADLR { 07257 vuint16_t R; 07258 } SYSBADLR_t; 07259 typedef union uPADR { 07260 vuint16_t R; 07261 } PADR_t; 07262 typedef union uPDAR { 07263 vuint16_t R; 07264 } PDAR_t; 07265 typedef union uCASERCR { 07266 vuint16_t R; 07267 } CASERCR_t; 07268 typedef union uCBSERCR { 07269 vuint16_t R; 07270 } CBSERCR_t; 07271 typedef union uCYCTR { 07272 vuint16_t R; 07273 } CYCTR_t; 07274 typedef union uMTCTR { 07275 vuint16_t R; 07276 } MTCTR_t; 07277 typedef union uSLTCTAR { 07278 vuint16_t R; 07279 } SLTCTAR_t; 07280 typedef union uSLTCTBR { 07281 vuint16_t R; 07282 } SLTCTBR_t; 07283 typedef union uRTCORVR { 07284 vuint16_t R; 07285 } RTCORVR_t; 07286 typedef union uOFCORVR { 07287 vuint16_t R; 07288 } OFCORVR_t; 07289 typedef union uSFTOR { 07290 vuint16_t R; 07291 } SFTOR_t; 07292 typedef union uSFIDAFVR { 07293 vuint16_t R; 07294 } SFIDAFVR_t; 07295 typedef union uSFIDAFMR { 07296 vuint16_t R; 07297 } SFIDAFMR_t; 07298 typedef union uNMVR { 07299 vuint16_t R; 07300 } NMVR_t; 07301 typedef union uNMVLR { 07302 vuint16_t R; 07303 } NMVLR_t; 07304 typedef union uT1MTOR { 07305 vuint16_t R; 07306 } T1MTOR_t; 07307 typedef union uTI2CR0 { 07308 vuint16_t R; 07309 } TI2CR0_t; 07310 typedef union uTI2CR1 { 07311 vuint16_t R; 07312 } TI2CR1_t; 07313 typedef union uSSCR { 07314 vuint16_t R; 07315 } SSCR_t; 07316 typedef union uRFSR { 07317 vuint16_t R; 07318 } RFSR_t; 07319 typedef union uRFSIR { 07320 vuint16_t R; 07321 } RFSIR_t; 07322 typedef union uRFARIR { 07323 vuint16_t R; 07324 } RFARIR_t; 07325 typedef union uRFBRIR { 07326 vuint16_t R; 07327 } RFBRIR_t; 07328 typedef union uRFMIDAFVR { 07329 vuint16_t R; 07330 } RFMIDAFVR_t; 07331 typedef union uRFMIAFMR { 07332 vuint16_t R; 07333 } RFMIAFMR_t; 07334 typedef union uRFFIDRFVR { 07335 vuint16_t R; 07336 } RFFIDRFVR_t; 07337 typedef union uRFFIDRFMR { 07338 vuint16_t R; 07339 } RFFIDRFMR_t; 07340 typedef union uLDTXSLAR { 07341 vuint16_t R; 07342 } LDTXSLAR_t; 07343 typedef union uLDTXSLBR { 07344 vuint16_t R; 07345 } LDTXSLBR_t; 07346 07347 typedef struct FR_tag { 07348 volatile MVR_t MVR; /*module version register *//*0 */ 07349 volatile MCR_t MCR; /*module configuration register *//*2 */ 07350 volatile SYSBADHR_t SYSBADHR; /*system memory base address high register *//*4 */ 07351 volatile SYSBADLR_t SYSBADLR; /*system memory base address low register *//*6 */ 07352 volatile STBSCR_t STBSCR; /*strobe signal control register *//*8 */ 07353 volatile STBPCR_t STBPCR; /*strobe port control register *//*A */ 07354 volatile MBDSR_t MBDSR; /*message buffer data size register *//*C */ 07355 volatile MBSSUTR_t MBSSUTR; /*message buffer segment size and utilization register *//*E */ 07356 volatile PADR_t PADR; /*PE address register *//*10 */ 07357 volatile PDAR_t PDAR; /*PE data register *//*12 */ 07358 volatile POCR_t POCR; /*Protocol operation control register *//*14 */ 07359 volatile GIFER_t GIFER; /*global interrupt flag and enable register *//*16 */ 07360 volatile PIFR0_t PIFR0; /*protocol interrupt flag register 0 *//*18 */ 07361 volatile PIFR1_t PIFR1; /*protocol interrupt flag register 1 *//*1A */ 07362 volatile PIER0_t PIER0; /*protocol interrupt enable register 0 *//*1C */ 07363 volatile PIER1_t PIER1; /*protocol interrupt enable register 1 *//*1E */ 07364 volatile CHIERFR_t CHIERFR; /*CHI error flag register *//*20 */ 07365 volatile MBIVEC_t MBIVEC; /*message buffer interrupt vector register *//*22 */ 07366 volatile CASERCR_t CASERCR; /*channel A status error counter register *//*24 */ 07367 volatile CBSERCR_t CBSERCR; /*channel B status error counter register *//*26 */ 07368 volatile PSR0_t PSR0; /*protocol status register 0 *//*28 */ 07369 volatile PSR1_t PSR1; /*protocol status register 1 *//*2A */ 07370 volatile PSR2_t PSR2; /*protocol status register 2 *//*2C */ 07371 volatile PSR3_t PSR3; /*protocol status register 3 *//*2E */ 07372 volatile MTCTR_t MTCTR; /*macrotick counter register *//*30 */ 07373 volatile CYCTR_t CYCTR; /*cycle counter register *//*32 */ 07374 volatile SLTCTAR_t SLTCTAR; /*slot counter channel A register *//*34 */ 07375 volatile SLTCTBR_t SLTCTBR; /*slot counter channel B register *//*36 */ 07376 volatile RTCORVR_t RTCORVR; /*rate correction value register *//*38 */ 07377 volatile OFCORVR_t OFCORVR; /*offset correction value register *//*3A */ 07378 volatile CIFRR_t CIFRR; /*combined interrupt flag register *//*3C */ 07379 vuint16_t reserved3[1]; /*3E */ 07380 volatile SFCNTR_t SFCNTR; /*sync frame counter register *//*40 */ 07381 volatile SFTOR_t SFTOR; /*sync frame table offset register *//*42 */ 07382 volatile SFTCCSR_t SFTCCSR; /*sync frame table configuration, control, status register *//*44 */ 07383 volatile SFIDRFR_t SFIDRFR; /*sync frame ID rejection filter register *//*46 */ 07384 volatile SFIDAFVR_t SFIDAFVR; /*sync frame ID acceptance filter value regiater *//*48 */ 07385 volatile SFIDAFMR_t SFIDAFMR; /*sync frame ID acceptance filter mask register *//*4A */ 07386 volatile NMVR_t NMVR[6]; /*network management vector registers (12 bytes) *//*4C */ 07387 volatile NMVLR_t NMVLR; /*network management vector length register *//*58 */ 07388 volatile TICCR_t TICCR; /*timer configuration and control register *//*5A */ 07389 volatile TI1CYSR_t TI1CYSR; /*timer 1 cycle set register *//*5C */ 07390 volatile T1MTOR_t T1MTOR; /*timer 1 macrotick offset register *//*5E */ 07391 volatile TI2CR0_t TI2CR0; /*timer 2 configuration register 0 *//*60 */ 07392 volatile TI2CR1_t TI2CR1; /*timer 2 configuration register 1 *//*62 */ 07393 volatile SSSR_t SSSR; /*slot status selection register *//*64 */ 07394 volatile SSCCR_t SSCCR; /*slot status counter condition register *//*66 */ 07395 volatile SSR_t SSR[8]; /*slot status registers 0-7 *//*68 */ 07396 volatile SSCR_t SSCR[4]; /*slot status counter registers 0-3 *//*78 */ 07397 volatile MTSCFR_t MTSACFR; /*mts a config register *//*80 */ 07398 volatile MTSCFR_t MTSBCFR; /*mts b config register *//*82 */ 07399 volatile RSBIR_t RSBIR; /*receive shadow buffer index register *//*84 */ 07400 volatile RFSR_t RFSR; /*receive fifo selection register *//*86 */ 07401 volatile RFSIR_t RFSIR; /*receive fifo start index register *//*88 */ 07402 volatile RFDSR_t RFDSR; /*receive fifo depth and size register *//*8A */ 07403 volatile RFARIR_t RFARIR; /*receive fifo a read index register *//*8C */ 07404 volatile RFBRIR_t RFBRIR; /*receive fifo b read index register *//*8E */ 07405 volatile RFMIDAFVR_t RFMIDAFVR; /*receive fifo message ID acceptance filter value register *//*90 */ 07406 volatile RFMIAFMR_t RFMIAFMR; /*receive fifo message ID acceptance filter mask register *//*92 */ 07407 volatile RFFIDRFVR_t RFFIDRFVR; /*receive fifo frame ID rejection filter value register *//*94 */ 07408 volatile RFFIDRFMR_t RFFIDRFMR; /*receive fifo frame ID rejection filter mask register *//*96 */ 07409 volatile RFRFCFR_t RFRFCFR; /*receive fifo range filter configuration register *//*98 */ 07410 volatile RFRFCTR_t RFRFCTR; /*receive fifo range filter control register *//*9A */ 07411 volatile LDTXSLAR_t LDTXSLAR; /*last dynamic transmit slot channel A register *//*9C */ 07412 volatile LDTXSLBR_t LDTXSLBR; /*last dynamic transmit slot channel B register *//*9E */ 07413 volatile PCR0_t PCR0; /*protocol configuration register 0 *//*A0 */ 07414 volatile PCR1_t PCR1; /*protocol configuration register 1 *//*A2 */ 07415 volatile PCR2_t PCR2; /*protocol configuration register 2 *//*A4 */ 07416 volatile PCR3_t PCR3; /*protocol configuration register 3 *//*A6 */ 07417 volatile PCR4_t PCR4; /*protocol configuration register 4 *//*A8 */ 07418 volatile PCR5_t PCR5; /*protocol configuration register 5 *//*AA */ 07419 volatile PCR6_t PCR6; /*protocol configuration register 6 *//*AC */ 07420 volatile PCR7_t PCR7; /*protocol configuration register 7 *//*AE */ 07421 volatile PCR8_t PCR8; /*protocol configuration register 8 *//*B0 */ 07422 volatile PCR9_t PCR9; /*protocol configuration register 9 *//*B2 */ 07423 volatile PCR10_t PCR10; /*protocol configuration register 10 *//*B4 */ 07424 volatile PCR11_t PCR11; /*protocol configuration register 11 *//*B6 */ 07425 volatile PCR12_t PCR12; /*protocol configuration register 12 *//*B8 */ 07426 volatile PCR13_t PCR13; /*protocol configuration register 13 *//*BA */ 07427 volatile PCR14_t PCR14; /*protocol configuration register 14 *//*BC */ 07428 volatile PCR15_t PCR15; /*protocol configuration register 15 *//*BE */ 07429 volatile PCR16_t PCR16; /*protocol configuration register 16 *//*C0 */ 07430 volatile PCR17_t PCR17; /*protocol configuration register 17 *//*C2 */ 07431 volatile PCR18_t PCR18; /*protocol configuration register 18 *//*C4 */ 07432 volatile PCR19_t PCR19; /*protocol configuration register 19 *//*C6 */ 07433 volatile PCR20_t PCR20; /*protocol configuration register 20 *//*C8 */ 07434 volatile PCR21_t PCR21; /*protocol configuration register 21 *//*CA */ 07435 volatile PCR22_t PCR22; /*protocol configuration register 22 *//*CC */ 07436 volatile PCR23_t PCR23; /*protocol configuration register 23 *//*CE */ 07437 volatile PCR24_t PCR24; /*protocol configuration register 24 *//*D0 */ 07438 volatile PCR25_t PCR25; /*protocol configuration register 25 *//*D2 */ 07439 volatile PCR26_t PCR26; /*protocol configuration register 26 *//*D4 */ 07440 volatile PCR27_t PCR27; /*protocol configuration register 27 *//*D6 */ 07441 volatile PCR28_t PCR28; /*protocol configuration register 28 *//*D8 */ 07442 volatile PCR29_t PCR29; /*protocol configuration register 29 *//*DA */ 07443 volatile PCR30_t PCR30; /*protocol configuration register 30 *//*DC */ 07444 vuint16_t reserved2[17]; 07445 volatile MSG_BUFF_CCS_t MBCCS[128]; /* message buffer configuration, control & status registers 0-31 *//*100 */ 07446 } FR_tag_t; 07447 07448 typedef union uF_HEADER /* frame header */ 07449 { 07450 struct { 07451 vuint16_t:5; 07452 vuint16_t HDCRC:11; /* Header CRC */ 07453 vuint16_t:2; 07454 vuint16_t CYCCNT:6; /* Cycle Count */ 07455 vuint16_t:1; 07456 vuint16_t PLDLEN:7; /* Payload Length */ 07457 vuint16_t:1; 07458 vuint16_t PPI:1; /* Payload Preamble Indicator */ 07459 vuint16_t NUF:1; /* Null Frame Indicator */ 07460 vuint16_t SYF:1; /* Sync Frame Indicator */ 07461 vuint16_t SUF:1; /* Startup Frame Indicator */ 07462 vuint16_t FID:11; /* Frame ID */ 07463 } B; 07464 vuint16_t WORDS[3]; 07465 } F_HEADER_t; 07466 typedef union uS_STSTUS /* slot status */ 07467 { 07468 struct { 07469 vuint16_t VFB:1; /* Valid Frame on channel B */ 07470 vuint16_t SYB:1; /* Sync Frame Indicator channel B */ 07471 vuint16_t NFB:1; /* Null Frame Indicator channel B */ 07472 vuint16_t SUB:1; /* Startup Frame Indicator channel B */ 07473 vuint16_t SEB:1; /* Syntax Error on channel B */ 07474 vuint16_t CEB:1; /* Content Error on channel B */ 07475 vuint16_t BVB:1; /* Boundary Violation on channel B */ 07476 vuint16_t CH:1; /* Channel */ 07477 vuint16_t VFA:1; /* Valid Frame on channel A */ 07478 vuint16_t SYA:1; /* Sync Frame Indicator channel A */ 07479 vuint16_t NFA:1; /* Null Frame Indicator channel A */ 07480 vuint16_t SUA:1; /* Startup Frame Indicator channel A */ 07481 vuint16_t SEA:1; /* Syntax Error on channel A */ 07482 vuint16_t CEA:1; /* Content Error on channel A */ 07483 vuint16_t BVA:1; /* Boundary Violation on channel A */ 07484 vuint16_t:1; 07485 } RX; 07486 struct { 07487 vuint16_t VFB:1; /* Valid Frame on channel B */ 07488 vuint16_t SYB:1; /* Sync Frame Indicator channel B */ 07489 vuint16_t NFB:1; /* Null Frame Indicator channel B */ 07490 vuint16_t SUB:1; /* Startup Frame Indicator channel B */ 07491 vuint16_t SEB:1; /* Syntax Error on channel B */ 07492 vuint16_t CEB:1; /* Content Error on channel B */ 07493 vuint16_t BVB:1; /* Boundary Violation on channel B */ 07494 vuint16_t TCB:1; /* Tx Conflict on channel B */ 07495 vuint16_t VFA:1; /* Valid Frame on channel A */ 07496 vuint16_t SYA:1; /* Sync Frame Indicator channel A */ 07497 vuint16_t NFA:1; /* Null Frame Indicator channel A */ 07498 vuint16_t SUA:1; /* Startup Frame Indicator channel A */ 07499 vuint16_t SEA:1; /* Syntax Error on channel A */ 07500 vuint16_t CEA:1; /* Content Error on channel A */ 07501 vuint16_t BVA:1; /* Boundary Violation on channel A */ 07502 vuint16_t TCA:1; /* Tx Conflict on channel A */ 07503 } TX; 07504 vuint16_t R; 07505 } S_STATUS_t; 07506 07507 typedef struct uMB_HEADER /* message buffer header */ 07508 { 07509 F_HEADER_t FRAME_HEADER; 07510 vuint16_t DATA_OFFSET; 07511 S_STATUS_t SLOT_STATUS; 07512 } MB_HEADER_t; 07513 /****************************************************************************/ 07514 /* MODULE : LCD */ 07515 /****************************************************************************/ 07516 struct LCD_tag { 07517 07518 union { 07519 vuint32_t R; 07520 struct { 07521 vuint32_t LCDEN:1; 07522 vuint32_t LCDRST:1; 07523 vuint32_t LCDRCS:1; 07524 vuint32_t DUTY:3; 07525 vuint32_t BIAS:1; 07526 vuint32_t VLCDS:1; 07527 vuint32_t PWR:2; 07528 vuint32_t BSTEN:1; 07529 vuint32_t BSTSEL:1; 07530 vuint32_t BSTAO:1; 07531 vuint32_t:1; 07532 vuint32_t LCDINT:1; 07533 vuint32_t EOFF:1; 07534 vuint32_t NOF:8; 07535 vuint32_t:2; 07536 vuint32_t LCDBPA:1; 07537 vuint32_t:2; 07538 vuint32_t LCDBPS:3; 07539 } B; 07540 } CR; /* LCD Control Register */ 07541 07542 union { 07543 vuint32_t R; 07544 struct { 07545 vuint32_t:4; 07546 vuint32_t LCLK:4; 07547 vuint32_t:24; 07548 } B; 07549 } PCR; /* LCD Prescaler Control Register */ 07550 07551 union { 07552 vuint32_t R; 07553 struct { 07554 vuint32_t CCEN:1; 07555 vuint32_t:4; 07556 vuint32_t LCC:11; 07557 vuint32_t:16; 07558 } B; 07559 } CCR; /* LCD Contrast Control Register */ 07560 07561 int32_t LCD_reserved1; /* (0x10 - 0x0C)/4 = 0x01 */ 07562 07563 union { 07564 vuint32_t R; 07565 struct { 07566 vuint32_t FP31EN:1; 07567 vuint32_t FP30EN:1; 07568 vuint32_t FP29EN:1; 07569 vuint32_t FP28EN:1; 07570 vuint32_t FP27EN:1; 07571 vuint32_t FP26EN:1; 07572 vuint32_t FP25EN:1; 07573 vuint32_t FP24EN:1; 07574 vuint32_t FP23EN:1; 07575 vuint32_t FP22EN:1; 07576 vuint32_t FP21EN:1; 07577 vuint32_t FP20EN:1; 07578 vuint32_t FP19EN:1; 07579 vuint32_t FP18EN:1; 07580 vuint32_t FP17EN:1; 07581 vuint32_t FP16EN:1; 07582 vuint32_t FP15EN:1; 07583 vuint32_t FP14EN:1; 07584 vuint32_t FP13EN:1; 07585 vuint32_t FP12EN:1; 07586 vuint32_t FP11EN:1; 07587 vuint32_t FP10EN:1; 07588 vuint32_t FP9EN:1; 07589 vuint32_t FP8EN:1; 07590 vuint32_t FP7EN:1; 07591 vuint32_t FP6EN:1; 07592 vuint32_t FP5EN:1; 07593 vuint32_t FP4EN:1; 07594 vuint32_t FP3EN:1; 07595 vuint32_t FP2EN:1; 07596 vuint32_t FP1EN:1; 07597 vuint32_t FP0EN:1; 07598 } B; 07599 } FPENR0; /* LCD Frontplane Enable Register 0 */ 07600 07601 union { 07602 vuint32_t R; 07603 struct { 07604 vuint32_t FP63EN:1; 07605 vuint32_t FP62EN:1; 07606 vuint32_t FP61EN:1; 07607 vuint32_t FP60EN:1; 07608 vuint32_t FP59EN:1; 07609 vuint32_t FP58EN:1; 07610 vuint32_t FP57EN:1; 07611 vuint32_t FP56EN:1; 07612 vuint32_t FP55EN:1; 07613 vuint32_t FP54EN:1; 07614 vuint32_t FP53EN:1; 07615 vuint32_t FP52EN:1; 07616 vuint32_t FP51EN:1; 07617 vuint32_t FP50EN:1; 07618 vuint32_t FP49EN:1; 07619 vuint32_t FP48EN:1; 07620 vuint32_t FP47EN:1; 07621 vuint32_t FP46EN:1; 07622 vuint32_t FP45EN:1; 07623 vuint32_t FP44EN:1; 07624 vuint32_t FP43EN:1; 07625 vuint32_t FP42EN:1; 07626 vuint32_t FP41EN:1; 07627 vuint32_t FP40EN:1; 07628 vuint32_t FP39EN:1; 07629 vuint32_t FP38EN:1; 07630 vuint32_t FP37EN:1; 07631 vuint32_t FP36EN:1; 07632 vuint32_t FP35EN:1; 07633 vuint32_t FP34EN:1; 07634 vuint32_t FP33EN:1; 07635 vuint32_t FP32EN:1; 07636 } B; 07637 } FPENR1; /* LCD Frontplane Enable Register 1 */ 07638 07639 int32_t LCD_reserved2[2]; /* (0x20 - 0x18)/4 = 0x02 */ 07640 07641 union { 07642 vuint32_t R; 07643 } RAM[16]; /* LCD RAM Register */ 07644 07645 }; /* end of LCD_tag */ 07646 /****************************************************************************/ 07647 /* MODULE : External Bus Interface (EBI) */ 07648 /****************************************************************************/ 07649 struct EBI_CS_tag { 07650 union { /* Base Register Bank */ 07651 vuint32_t R; 07652 struct { 07653 vuint32_t BA:17; 07654 vuint32_t:3; 07655 vuint32_t PS:1; 07656 vuint32_t:4; 07657 vuint32_t BL:1; 07658 vuint32_t WEBS:1; 07659 vuint32_t TBDIP:1; 07660 vuint32_t:2; 07661 vuint32_t BI:1; 07662 vuint32_t V:1; 07663 } B; 07664 } BR; 07665 07666 union { /* Option Register Bank */ 07667 vuint32_t R; 07668 struct { 07669 vuint32_t AM:17; 07670 vuint32_t:7; 07671 vuint32_t SCY:4; 07672 vuint32_t:1; 07673 vuint32_t BSCY:2; 07674 vuint32_t:1; 07675 } B; 07676 } OR; 07677 }; /* end of EBI_CS_tag */ 07678 07679 struct EBI_tag { 07680 union { /* Module Configuration Register */ 07681 vuint32_t R; 07682 struct { 07683 vuint32_t:5; 07684 vuint32_t SIZEN:1; 07685 vuint32_t SIZE:2; 07686 vuint32_t:8; 07687 vuint32_t ACGE:1; 07688 vuint32_t EXTM:1; 07689 vuint32_t EARB:1; 07690 vuint32_t EARP:2; 07691 vuint32_t:4; 07692 vuint32_t MDIS:1; 07693 vuint32_t:4; 07694 vuint32_t AD_MUX:1; 07695 vuint32_t DBM:1; 07696 } B; 07697 } MCR; 07698 07699 uint32_t EBI_reserved1; 07700 07701 union { /* Transfer Error Status Register */ 07702 vuint32_t R; 07703 struct { 07704 vuint32_t:30; 07705 vuint32_t TEAF:1; 07706 vuint32_t BMTF:1; 07707 } B; 07708 } TESR; 07709 07710 union { /* Bus Monitor Control Register */ 07711 vuint32_t R; 07712 struct { 07713 vuint32_t:16; 07714 vuint32_t BMT:8; 07715 vuint32_t BME:1; 07716 vuint32_t:7; 07717 } B; 07718 } BMCR; 07719 07720 struct EBI_CS_tag CS[2]; 07721 07722 }; /* end of EBI_tag */ 07723 /****************************************************************************/ 07724 /* MODULE : DFLASH */ 07725 /****************************************************************************/ 07726 struct DFLASH_tag { 07727 union { /* Module Configuration Register */ 07728 vuint32_t R; 07729 struct { 07730 vuint32_t EDC:1; 07731 vuint32_t:4; 07732 vuint32_t SIZE:3; 07733 vuint32_t:1; 07734 vuint32_t LAS:3; 07735 vuint32_t:3; 07736 vuint32_t MAS:1; 07737 vuint32_t EER:1; 07738 vuint32_t RWE:1; 07739 vuint32_t:1; 07740 vuint32_t:1; 07741 vuint32_t PEAS:1; 07742 vuint32_t DONE:1; 07743 vuint32_t PEG:1; 07744 vuint32_t:4; 07745 vuint32_t PGM:1; 07746 vuint32_t PSUS:1; 07747 vuint32_t ERS:1; 07748 vuint32_t ESUS:1; 07749 vuint32_t EHV:1; 07750 } B; 07751 } MCR; 07752 07753 union { /* LML Register */ 07754 vuint32_t R; 07755 struct { 07756 vuint32_t LME:1; 07757 vuint32_t:10; 07758 vuint32_t TSLK:1; 07759 vuint32_t:2; 07760 vuint32_t MLK:2; 07761 vuint32_t LLK:16; 07762 } B; 07763 } LML; 07764 07765 union { /* HBL Register */ 07766 vuint32_t R; 07767 struct { 07768 vuint32_t HBE:1; 07769 vuint32_t:23; 07770 vuint32_t HBLOCK:8; 07771 } B; 07772 } HBL; 07773 07774 union { /* SLML Register */ 07775 vuint32_t R; 07776 struct { 07777 vuint32_t SLE:1; 07778 vuint32_t:10; 07779 vuint32_t STSLK:1; 07780 vuint32_t:2; 07781 vuint32_t SMK:2; 07782 vuint32_t SLK:16; 07783 } B; 07784 } SLL; 07785 07786 union { /* LMS Register */ 07787 vuint32_t R; 07788 struct { 07789 vuint32_t:14; 07790 vuint32_t MSL:2; 07791 vuint32_t LSL:16; 07792 } B; 07793 } LMS; 07794 07795 union { /* High Address Space Block Select Register */ 07796 vuint32_t R; 07797 struct { 07798 vuint32_t:26; 07799 vuint32_t HSL:6; 07800 } B; 07801 } HBS; 07802 07803 union { /* Address Register */ 07804 vuint32_t R; 07805 struct { 07806 vuint32_t:9; 07807 vuint32_t ADD:20; 07808 vuint32_t:3; 07809 } B; 07810 } ADR; 07811 07812 int32_t Dflash_reserved0[8]; /* {0x003C-0x001C}/0x4 = 0x08 */ 07813 07814 union { /* User Test Register 0 */ 07815 vuint32_t R; 07816 struct { 07817 vuint32_t UTE:1; 07818 vuint32_t:7; 07819 vuint32_t DSI:8; 07820 vuint32_t:10; 07821 vuint32_t MRE:1; 07822 vuint32_t MRV:1; 07823 vuint32_t EIE:1; 07824 vuint32_t AIS:1; 07825 vuint32_t AIE:1; 07826 vuint32_t AID:1; 07827 } B; 07828 } UT0; 07829 07830 union { /* User Test Register 1 */ 07831 vuint32_t R; 07832 struct { 07833 vuint32_t DAI:32; 07834 } B; 07835 } UT1; 07836 07837 union { /* User Test Register 2 */ 07838 vuint32_t R; 07839 struct { 07840 vuint32_t DAI:32; 07841 } B; 07842 } UT2; 07843 07844 union { /* User Multiple Input Signature Register 0-4 */ 07845 vuint32_t R; 07846 struct { 07847 vuint32_t MS:32; 07848 } B; 07849 } UMISR[5]; 07850 07851 }; /* end of Dflash_tag */ 07852 /****************************************************************************/ 07853 /* MODULE : CFLASH */ 07854 /****************************************************************************/ 07855 struct CFLASH_tag { 07856 union { /* Module Configuration Register */ 07857 vuint32_t R; 07858 struct { 07859 vuint32_t EDC:1; 07860 vuint32_t:4; 07861 vuint32_t SIZE:3; 07862 vuint32_t:1; 07863 vuint32_t LAS:3; 07864 vuint32_t:3; 07865 vuint32_t MAS:1; 07866 vuint32_t EER:1; 07867 vuint32_t RWE:1; 07868 vuint32_t:1; 07869 vuint32_t:1; 07870 vuint32_t PEAS:1; 07871 vuint32_t DONE:1; 07872 vuint32_t PEG:1; 07873 vuint32_t:4; 07874 vuint32_t PGM:1; 07875 vuint32_t PSUS:1; 07876 vuint32_t ERS:1; 07877 vuint32_t ESUS:1; 07878 vuint32_t EHV:1; 07879 } B; 07880 } MCR; 07881 07882 union { /* LML Register */ 07883 vuint32_t R; 07884 struct { 07885 vuint32_t LME:1; 07886 vuint32_t:10; 07887 vuint32_t TSLK:1; 07888 vuint32_t:2; 07889 vuint32_t MLK:2; 07890 vuint32_t LLK:16; 07891 } B; 07892 } LML; 07893 07894 union { /* HBL Register */ 07895 vuint32_t R; 07896 struct { 07897 vuint32_t HBE:1; 07898 vuint32_t:23; 07899 vuint32_t HBLOCK:8; 07900 } B; 07901 } HBL; 07902 07903 union { /* SLML Register */ 07904 vuint32_t R; 07905 struct { 07906 vuint32_t SLE:1; 07907 vuint32_t:10; 07908 vuint32_t STSLK:1; 07909 vuint32_t:2; 07910 vuint32_t SMK:2; 07911 vuint32_t SLK:16; 07912 } B; 07913 } SLL; 07914 07915 union { /* LMS Register */ 07916 vuint32_t R; 07917 struct { 07918 vuint32_t:14; 07919 vuint32_t MSL:2; 07920 vuint32_t LSL:16; 07921 } B; 07922 } LMS; 07923 07924 union { /* High Address Space Block Select Register */ 07925 vuint32_t R; 07926 struct { 07927 vuint32_t:26; 07928 vuint32_t HSL:6; 07929 } B; 07930 } HBS; 07931 07932 union { /* Address Register */ 07933 vuint32_t R; 07934 struct { 07935 vuint32_t:9; 07936 vuint32_t ADD:20; 07937 vuint32_t:3; 07938 } B; 07939 } ADR; 07940 07941 union { /* CFLASH Configuration Register 0 */ 07942 vuint32_t R; 07943 struct { 07944 vuint32_t BK0_APC:5; 07945 vuint32_t BK0_WWSC:5; 07946 vuint32_t BK0_RWSC:5; 07947 vuint32_t BK0_RWWC2:1; 07948 vuint32_t BK0_RWWC1:1; 07949 vuint32_t B0_P1_BCFG:2; 07950 vuint32_t B0_P1_DPFE:1; 07951 vuint32_t B0_P1_IPFE:1; 07952 vuint32_t B0_P1_PFLM:2; 07953 vuint32_t B0_P1_BFE:1; 07954 vuint32_t BK0_RWWC0:1; 07955 vuint32_t B0_P0_BCFG:2; 07956 vuint32_t B0_P0_DPFE:1; 07957 vuint32_t B0_P0_IPFE:1; 07958 vuint32_t B0_P0_PFLM:2; 07959 vuint32_t B0_P0_BFE:1; 07960 } B; 07961 } PFCR0; 07962 07963 union { /* CFLASH Configuration Register 1 */ 07964 vuint32_t R; 07965 struct { 07966 vuint32_t BK1_APC:5; 07967 vuint32_t BK1_WWSC:5; 07968 vuint32_t BK1_RWSC:5; 07969 vuint32_t BK1_RWWC2:1; 07970 vuint32_t BK1_RWWC1:1; 07971 vuint32_t:6; 07972 vuint32_t B0_P1_BFE:1; 07973 vuint32_t BK1_RWWC0:1; 07974 vuint32_t:6; 07975 vuint32_t B1_P0_BFE:1; 07976 } B; 07977 } PFCR1; 07978 07979 union { /* cflash Access Protection Register */ 07980 vuint32_t R; 07981 struct { 07982 vuint32_t:6; 07983 vuint32_t ARBM:2; 07984 vuint32_t M7PFD:1; 07985 vuint32_t M6PFD:1; 07986 vuint32_t M5PFD:1; 07987 vuint32_t M4PFD:1; 07988 vuint32_t M3PFD:1; 07989 vuint32_t M2PFD:1; 07990 vuint32_t M1PFD:1; 07991 vuint32_t M0PFD:1; 07992 vuint32_t M7AP:2; 07993 vuint32_t M6AP:2; 07994 vuint32_t M5AP:2; 07995 vuint32_t M4AP:2; 07996 vuint32_t M3AP:2; 07997 vuint32_t M2AP:2; 07998 vuint32_t M1AP:2; 07999 vuint32_t M0AP:2; 08000 } B; 08001 } FAPR; 08002 08003 int32_t CFLASH_reserved0[5]; /* {0x003C-0x0028}/0x4 = 0x05 */ 08004 08005 union { /* User Test Register 0 */ 08006 vuint32_t R; 08007 struct { 08008 vuint32_t UTE:1; 08009 vuint32_t:7; 08010 vuint32_t DSI:8; 08011 vuint32_t:10; 08012 vuint32_t MRE:1; 08013 vuint32_t MRV:1; 08014 vuint32_t EIE:1; 08015 vuint32_t AIS:1; 08016 vuint32_t AIE:1; 08017 vuint32_t AID:1; 08018 } B; 08019 } UT0; 08020 08021 union { /* User Test Register 1 */ 08022 vuint32_t R; 08023 struct { 08024 vuint32_t DAI:32; 08025 } B; 08026 } UT1; 08027 08028 union { /* User Test Register 2 */ 08029 vuint32_t R; 08030 struct { 08031 vuint32_t DAI:32; 08032 } B; 08033 } UT2; 08034 08035 union { /* User Multiple Input Signature Register 0-4 */ 08036 vuint32_t R; 08037 struct { 08038 vuint32_t MS:32; 08039 } B; 08040 } UMISR[5]; 08041 08042 }; /* end of CFLASH_tag */ 08043 08044 /****************************************************************************/ 08045 /* MODULE : CRC */ 08046 /****************************************************************************/ 08047 struct CRC_SUB_tag { 08048 union { 08049 vuint8_t B[4]; /* Data buffer in Bytes (8 bits) */ 08050 vuint16_t H[2]; /* Data buffer in Half-words (16 bits) */ 08051 vuint32_t W; /* Data buffer in words (32 bits) */ 08052 struct { 08053 vuint32_t INV:1; 08054 vuint32_t SWAP:1; 08055 vuint32_t POLYG:1; 08056 vuint32_t:29; 08057 }BIT; 08058 } CRC_CFG; /* CRC Configuration Register */ 08059 08060 union { 08061 vuint8_t B[4]; /* Data buffer in Bytes (8 bits) */ 08062 vuint16_t H[2]; /* Data buffer in Half-words (16 bits) */ 08063 vuint32_t W; /* Data buffer in words (32 bits) */ 08064 } CRC_INP; /* CRC Input Register */ 08065 08066 union { 08067 vuint8_t B[4]; /* Data buffer in Bytes (8 bits) */ 08068 vuint16_t H[2]; /* Data buffer in Half-words (16 bits) */ 08069 vuint32_t W; /* Data buffer in words (32 bits) */ 08070 } CRC_CSTAT; /*CRC Current Status Register */ 08071 08072 union { 08073 vuint8_t B[4]; /* Data buffer in Bytes (8 bits) */ 08074 vuint16_t H[2]; /* Data buffer in Half-words (16 bits) */ 08075 vuint32_t W; /* Data buffer in words (32 bits) */ 08076 } CRC_OUTP; /* CRC Output Register */ 08077 08078 }; /* end of CRC_tag */ 08079 08080 struct CRC_tag { 08081 struct CRC_SUB_tag CNTX[2]; 08082 }; 08083 08084 /****************************************************************** 08085 | defines and macros (scope: module-local) 08086 |-----------------------------------------------------------------*/ 08087 /* Define instances of modules */ 08088 #define ADC_0 (*(volatile struct ADC_tag *) 0xFFE00000UL) 08089 #define ADC_1 (*(volatile struct ADC_tag *) 0xFFE04000UL) 08090 #define CAN_0 (*(volatile struct FLEXCAN_tag *) 0xFFFC0000UL) 08091 #define CAN_1 (*(volatile struct FLEXCAN_tag *) 0xFFFC4000UL) 08092 #define CAN_2 (*(volatile struct FLEXCAN_tag *) 0xFFFC8000UL) 08093 #define CAN_3 (*(volatile struct FLEXCAN_tag *) 0xFFFCC000UL) 08094 #define CAN_4 (*(volatile struct FLEXCAN_tag *) 0xFFFD0000UL) 08095 #define CAN_5 (*(volatile struct FLEXCAN_tag *) 0xFFFD4000UL) 08096 #define CANSP (*(volatile struct CANSP_tag *) 0xFFE70000UL) 08097 #define CFLASH (*(volatile struct CFLASH_tag *) 0xC3F88000UL) 08098 #define CGM (*(volatile struct CGM_tag *) 0xC3FE0000UL) 08099 #define CTU_0 (*(volatile struct CTU_tag *) 0xFFE0C000UL) 08100 #define CTU_1 (*(volatile struct CTU_tag *) 0xFFE10000UL) 08101 #define CTUL (*(volatile struct CTUL_tag *) 0xFFE64000UL) 08102 #define DCU (*(volatile struct DCU_tag *) 0xFFE7C000UL) 08103 #define DFLASH (*(volatile struct DFLASH_tag *) 0xC3F8C000UL) 08104 #define DMAMUX (*(volatile struct DMAMUX_tag *) 0xFFFDC000UL) 08105 #define DSPI_0 (*(volatile struct DSPI_tag *) 0xFFF90000UL) 08106 #define DSPI_1 (*(volatile struct DSPI_tag *) 0xFFF94000UL) 08107 #define DSPI_2 (*(volatile struct DSPI_tag *) 0xFFF98000UL) 08108 #define DSPI_3 (*(volatile struct DSPI_tag *) 0xFFF9C000UL) 08109 #define EBI (*(volatile struct EBI_tag *) 0xC3F84000UL) 08110 #define EDMA (*(volatile struct EDMA_tag *) 0xFFF44000UL) 08111 #define EMIOS_0 (*(volatile struct EMIOS_tag *) 0xC3FA0000UL) 08112 #define EMIOS_1 (*(volatile struct EMIOS_tag *) 0xC3FA4000UL) 08113 #define ETIMER_0 (*(volatile struct ETIMER_tag *) 0xFFE18000UL) 08114 #define ETIMER_1 (*(volatile struct ETIMER_tag *) 0xFFE1C000UL) 08115 #define FCU (*(volatile struct FCU_tag *) 0xFFE6C000UL) 08116 #define FLEXPWM_0 (*(volatile struct FLEXPWM_tag *) 0xFFE24000UL) 08117 #define FLEXPWM_1 (*(volatile struct FLEXPWM_tag *) 0xFFE28000UL) 08118 #define FR (*(volatile struct FR_tag *) 0xFFFE0000UL) 08119 #define I2C_0 (*(volatile struct I2C_tag *) 0xFFE30000UL) 08120 #define I2C_1 (*(volatile struct I2C_tag *) 0xFFE34000UL) 08121 #define I2C_2 (*(volatile struct I2C_tag *) 0xFFE38000UL) 08122 #define I2C_3 (*(volatile struct I2C_tag *) 0xFFE3C000UL) 08123 #define INTC (*(volatile struct INTC_tag *) 0xFFF48000UL) 08124 #define LCD (*(volatile struct LCD_tag *) 0xFFE74000UL) 08125 #define LINFLEX_0 (*(volatile struct LINFLEX_tag *) 0xFFE40000UL) 08126 #define LINFLEX_1 (*(volatile struct LINFLEX_tag *) 0xFFE44000UL) 08127 #define LINFLEX_2 (*(volatile struct LINFLEX_tag *) 0xFFE48000UL) 08128 #define LINFLEX_3 (*(volatile struct LINFLEX_tag *) 0xFFE4C000UL) 08129 #define MCM (*(volatile struct MCM_tag *) 0xFFF40000UL) 08130 #define ME (*(volatile struct ME_tag *) 0xC3FDC000UL) 08131 #define MPU (*(volatile struct MPU_tag *) 0xFFF10000UL) 08132 #define PCU (*(volatile struct PCU_tag *) 0xC3FE8000UL) 08133 #define PIT (*(volatile struct PIT_tag *) 0xC3FF0000UL) 08134 #define RGM (*(volatile struct RGM_tag *) 0xC3FE4000UL) 08135 #define RTC (*(volatile struct RTC_tag *) 0xC3FEC000UL) 08136 #define SAFEPORT (*(volatile struct FLEXCAN_tag *) 0xFFFE8000UL) 08137 #define SIU (*(volatile struct SIU_tag *) 0xC3F90000UL) 08138 #define SMC (*(volatile struct SMC_tag *) 0xFFE60000UL) 08139 #define SSCM (*(volatile struct SSCM_tag *) 0xC3FD8000UL) 08140 #define SSD_0 (*(volatile struct SSD_tag *) 0xFFE61000UL) 08141 #define SSD_1 (*(volatile struct SSD_tag *) 0xFFE61800UL) 08142 #define SSD_2 (*(volatile struct SSD_tag *) 0xFFE62000UL) 08143 #define SSD_3 (*(volatile struct SSD_tag *) 0xFFE62800UL) 08144 #define SSD_4 (*(volatile struct SSD_tag *) 0xFFE63000UL) 08145 #define SSD_5 (*(volatile struct SSD_tag *) 0xFFE63800UL) 08146 #define STM (*(volatile struct STM_tag *) 0xFFF3C000UL) 08147 #define SWT (*(volatile struct SWT_tag *) 0xFFF38000UL) 08148 #define WKUP (*(volatile struct WKUP_tag *) 0xC3F94000UL) 08149 #define CRC (*(volatile struct CRC_tag *) 0xFFE68000UL) 08150 08151 #ifdef __MWERKS__ 08152 #pragma pop 08153 #endif 08154 08155 #ifdef __cplusplus 08156 } 08157 #endif 08158 #endif /* ifdef _JDP_H */ 08159 /* End of file */